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上
------解决方案--------------------
确实画不出来 , 坐等大神解释