hytrao |
2021-03-19 11:17 |
在vc里面使用postMessage将自定义消息传出,然后再qt主体程序中重写nativeEvent函数,在该函数接收windows自定义消息
bool EmbededWidget::nativeEvent(const QByteArray &eventType, void *message, long *result) { if (eventType == "windows_generic_MSG") //windows平台 { MSG* msg = reinterpret_cast<MSG*>(message); // if(msg->message == WM_COPYDATA)//消息类型 { COPYDATASTRUCT *data = reinterpret_cast<COPYDATASTRUCT*>(msg->lParam); QTextCodec *gbk = QTextCodec::codecForName("GB18030"); QString recevice = gbk->toUnicode((char *)(data->lpData));//转码 if(recevice.contains("Command=")) { return true;//消息不再进行传递,不再处理 } m_wnd = reinterpret_cast<HWND>(msg->wParam);//高地址的参数 } } return QWidget::nativeEvent(eventType, message, result);//交给Qt处理 } |
|