Qt的窗口消息处理函数是哪个

 我来答
打伞鱼Aw
2016-04-09 · TA获得超过7266个赞
知道大有可为答主
回答量:7524
采纳率:90%
帮助的人:1574万
展开全部
重写窗体的nativeEvent事件,就可以了。
示例代码:
函数声明:
protected:
bool nativeEvent(const QByteArray &eventType, void *message, long *result);
函数定义:
bool GWSMainWindow::nativeEvent(const QByteArray &eventType, void *message, long *result)
{
if (eventType == "windows_generic_MSG")
{
MSG* msg = reinterpret_cast<MSG*>(message);
switch (msg->message)
{
case WM_COPYDATA:
{
COPYDATASTRUCT *copyData = (COPYDATASTRUCT*)msg->lParam;
int nDataSize = copyData->cbData;
if(nDataSize > 0)
{
char* ch = new char[nDataSize];
memcpy(ch, copyData->lpData, nDataSize);
QString strMsg = QString::fromUtf8(ch);
delete [] ch;

m_msgList.append(strMsg);
int nIndex = m_msgList.count() - 1;
PostMessage((HWND)this->winId(), MYWM_HANDLECOPYDATA, copyData->dwData, nIndex);
}
return true;
}
case MYWM_HANDLECOPYDATA://自定义消息
{
return handleCopyDataMsg(msg->lParam, msg->wParam);
}
case MYWM_UPDATESOFTMGRICON:
{
int nCount = (int)msg->lParam;
m_pSysTitleWidget->updateSoftMgrIcon(nCount);
return true;
}
default:
return QWidget::nativeEvent(eventType, message, result);
}
}
else
return QWidget::nativeEvent(eventType, message, result);
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式