MFC中Tab控件页面上的list控件无法处理消息

首先建立了一个对话框1.,然后加入了tab控件。
然后建立对话框2,里面加入list控件
然后将对话框2绑定到tab控件的第一页。使用的Create函数,ShowWindow()函数
从CListCtrl类派生一个CMyList类,绑定list控件。
在CMyList类里面响应list控件的消息,响应不了啊,消息怎么不能过来。特别是拖拽文件的消息。有没有大神讲解讲解这种非模态对话框上控件类怎么实现消息响应啊。

以前也遇到过这问题。
好像是被Tab控件把消息给过滤了。
你试试继承Tab类,在类里面处理消息,检测到List消息之后,在发送消息到List。追问

一直都是写SDK程序的,最近在研究MFC,所以有好多东西都不是很懂。
对于你说的检测List消息,这个如何检测?能否详细说一下。

追答

可以使用

virtual BOOL PreTranslateMessage(MSG* pMsg);

拦截所有消息,然后分析这些消息。

BOOL CXXX::PreTranslateMessage(MSG* pMsg) //拦截回车消息
{
// TODO: Add your specialized code here and/or call the base class
if(pMsg->message == WM_KEYDOWN && GetKeyState(VK_CONTROL) && GetKeyState(VK_MENU) && pMsg->wParam == 'O')
{
MessageBox("Ctrl+Alt+O");
}
if(pMsg->message == WM_KEYDOWN)
{
         if(int(pMsg->wParam) == VK_RETURN )
{
return TRUE;
       }
return CDialog::PreTranslateMessage(pMsg);
}
return CDialog::PreTranslateMessage(pMsg);
}

追问

嗯,谢谢,我去试试。

温馨提示:答案为网友推荐,仅供参考