qt获取窗口句柄来显示图片
来源:互联网 发布:盾太脸型数据 编辑:程序博客网 时间:2024/05/23 19:11
下面的程序是我的Demo程序,我想在QLable上通过HWND句柄绘制一条线,但结果是,线看不到,这是为什么呀?
#include <Windows.h>#include <QLabel> class MyLabel : public QLabel{public: MyLabel(){} ~MyLabel(){;} void paintEvent ( QPaintEvent *e ) { QLabel::paintEvent(e); HWND hWnd = (HWND)this->winId(); HDC hDc = GetDC(hWnd); if (hDc) { MoveToEx(hDc, 100, 100, 0); LineTo(hDc, 200, 200); } } }; int main(int argc, char *argv[]){ QApplication app(argc, argv); MyLabel *pLabel = new MyLabel; pLabel->resize(600, 480); pLabel->setText("12345"); pLabel->show(); return app.exec();}
//------------------------------------------------------------------------------
由于需要通过Qt开发摄像头的显示程序,该摄像头带了一个数据采集卡,通过DEMO知道需要使用EImage类,里面使用了draw(HDC)的函数,而QT中好像没有直接获取HDC的函数,QLabel类中有一个getDC()获取的HDC好像和MFC中的HDC不一样,用了不管用。所以在网上搜了一下,发现可以这样写:HWND hwnd = (HWND)m_label->winId();
HDC hDC = GetDC(hwnd);
m_dcImage24->draw(hDC);
但是试了一下,发现还是不行,大神们,有没有其他的方法?
//------------------------------------------------------------------
调用windows 系统库
HWND nHwnd=FindWindow(NULL,NULL);
while(nHwnd != NULL)
{
TCHAR titleText[MAX_PATH] = {0};
::GetWindowText(nHwnd, titleText, MAX_PATH);
char str[MAX_PATH] = {0};
//获取字节长度
int iLength = WideCharToMultiByte(CP_ACP, 0, titleText, -1, NULL, 0, NULL, NULL);
//将tchar值赋给_char
WideCharToMultiByte(CP_ACP, 0, titleText, -1, str, iLength, NULL, NULL);
if (strlen(str)>0 && strcmp(str, "你的要找的窗口名") == 0)
{
}
}
{
HWND
AppWnd;
QString ClassName(
"#32770"
);
QString AppName(
"IJPAS"
);
LPCWSTR
App =
reinterpret_cast
<
LPCWSTR
>(ClassName.data());
LPCWSTR
AppCaption =
reinterpret_cast
<
LPCWSTR
>(AppName.data());
AppWnd= ::FindWindowW( App, AppCaption);
if
(!AppWnd)
QMessageBox::information(
this
,tr(
"Warning"
),tr(
"can't get IJPAS Window Handle!"
));
}
//----------------------------------------------------------
窗口构造的时候调用: setAccessibleName(strName)
下面是需要查找的地方:
QWidget* GetWidgetPtrByName(QString strWidget)
{
QWidgetList widgetLst;
QWidget *pWidget = NULL;
QString strName;
widgetLst = qApp->allWidgets();
for(int i = 0; i < widgetLst.size(); i++)
{
pWidget = widgetLst.at(i);
strName = pWidget->accessibleName();
if(strName == strWidget)
{
break;
}
}
return pWidget;
}
我这个是在linux下面这样做的,windows下应该也可以的,不知道有没有用,试试看。。
- qt获取窗口句柄来显示图片
- qt 获取窗口句柄
- 根据窗口句柄来获取进程ID
- QT里,windows下获取窗口句柄的方法
- Windows 7桌面显示图标窗口句柄的获取
- 获取窗口句柄
- 获取桌面窗口句柄
- 获取窗口句柄
- 获取窗口句柄
- 获取console窗口句柄
- 获取窗口句柄
- 窗口句柄获取神器
- WPF获取窗口句柄
- MFC 窗口句柄获取
- 获取窗口句柄
- mfc获取窗口句柄
- 获取窗口句柄
- C++ 获取窗口句柄
- ProxySG 对URL中Query部分的定义
- A
- Python学习笔记: Python3中map、filter、reduce函数
- linux下sftp常用命令
- 关于信息熵与期望的关系的个人理解
- qt获取窗口句柄来显示图片
- git常用命令总结(分类)
- 生产环境的Hadoop版本比较
- 【机器学习实战】第8章 预测数值型数据:回归(Regression)
- 9
- 零宽断言
- ubuntu 安装supervisor
- BZOJ 1190: [HNOI2007]梦幻岛宝珠 背包DP
- centos7按照php7