当前位置: 代码迷 >> QT开发 >> 怎么使用QT的winId函数返回的窗口句柄实现绘图之类的操作
  详细解决方案

怎么使用QT的winId函数返回的窗口句柄实现绘图之类的操作

热度:75   发布时间:2016-04-25 03:51:44.0
如何使用QT的winId函数返回的窗口句柄实现绘图之类的操作
winId() 函数能够返回 当前Widget的HWND句柄,我想通过这个窗口句柄实现额外的操作,比如绘制图像或者将句柄传递给第三方功能库操作。
下面的程序是我的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();
}

------解决方案--------------------
你可以绘到图上,在贴在QLabel上
------解决方案--------------------
确实画不出来 , 坐等大神解释
  相关解决方案