超级奇怪和超级困难的问题,高手高手高高手请进,内有详细说明:
单文档多视窗结构,其中有一个视叫做CDisplayView,在其上有一个CComboBox控件,叫做m_Category,其控件ID为:IDC_CATEGORY; 在视图CDisplayView中有一个响应m_Category的SELCHANGE消息的函数,当用户选中CComboBox 的一个Item后,些消息函数能正常执行,问题来了,现在我在其它的视图(不是CDisplayView)中向CDisplayView发送一个这个消息,消息ID是CBN_SELCHANGE,部分代码如下:
//wParam 的低位应该是控件的ID,MSDN上说的
WPARAM wParam = MAKEWPARAM((WORD)IDC_CATEGORY,0);
//lParam应该是控件的窗口句柄,也是MSDN上说的
LPARAM lParam = (LPARAM)pDisplayView->m_Category.m_hWnd;
::SendMessage(pDisplayView->m_hWnd,CBN_SELCHANGE,wParam,lParam);
大家猜结果怎样:
结果是发送消息后执行函数是:
CDisplayView::OnCreate()
非法操作!!!!
有人遇到过这种情况吗?