噢 , 那你试试nativeEvent(),这个能够满足
Dll中增加一个接口函数,比如void SetQtWndHandle(HWND h);把从Qt获得的窗口句柄保存在MFC的dll中,在后续的SendMessage()中使用
Qt5用这个,windows有消息就会响应Qt的这个事件 bool Dialog::nativeEvent(const QByteArray &eventType, void *message, long *result) { Q_UNUSED(eventType); //MSG是个消息结构体,里面有类型、数据等。 MSG* msg = reinterpret_cast<MSG*>(message); } Qt4用这个 bool Dialog::winEvent(MSG *message, long *result)
MFC的dll代码能不能改? 如果能改,把Qt的窗口句柄(QWidget::WinId())传入MFC的dll中(比如定义为HWND QtWnd),然后自定义一个Windows消息,比如WM_CUSTOM,用SendMessage(QtWnd,WM_CUSTOM,param1,param2);,其中param1和param2就可以携带消息的参数,比如进度条的当前刻度。最后,实现7楼所说的响应函数。
SendMessage给qt的进度条吗?通过winid()取到句柄后,但不知道qt的进度条接不接受WIN32的标准MSG,用spy看看
1、QProgressBar::setRange 设置最小和最大范围 2、QProgressBar::setValue 设置当前进度
16,173
社区成员
26,583
社区内容
加载中
试试用AI创作助手写篇文章吧