对CDialog设置GWL_WNDPROC,但是接受不到鼠标消息,请问是怎么回事? 在对话框的OnInitDialog函数里面调用SetWindowLong(hWnd, GWL_WNDPROC, (LONG)WndProc);。运行的时候能接受到一些WM_ACTIVE之类的消息,但是鼠标的消息却接受不到,请问这是为什么? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我试了一下,可以啊。消息都能响应,只是因为改变了窗口过程,一些关联函数没有调用,界面显示混乱,有些操作失败,可能要将CDialog的一下代码加进来。其实要改变窗口过程直接重载CDialog::WindowProc就好了。LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam){ switch(message) { case WM_LBUTTONDOWN: ::MessageBox(hWnd, "WM_LBUTTONDOWN", "", MB_OK); break; case WM_RBUTTONDOWN: ::MessageBox(hWnd, "WM_RBUTTONDOWN", "", MB_OK); break; } return DefWindowProc(hWnd, message, wParam, lParam);} 是不是处理了wm_nchittest等消息 ?那样的话,也收不到鼠标消息的 右键shell扩展菜单问题 连接数据库时 CTime对象的初始化!!在线等求助!! 2011元宵节散分~ mysql插入动态变量 VC6里面在基于对话框的mfc exe中创建工作者线程,怎么debug没问题,release版出错? 急!新手关于读位图的问题 关于文件操作的问题(在线结贴) 关于《VC技术内幕》的学习 谁有键盘的键码表? 如何实现这样的工具栏? atl 连接点事件的问题 atl Fire_XXX的参数为ULONG 的函数修改方法?
{
switch(message)
{
case WM_LBUTTONDOWN:
::MessageBox(hWnd, "WM_LBUTTONDOWN", "", MB_OK);
break;
case WM_RBUTTONDOWN:
::MessageBox(hWnd, "WM_RBUTTONDOWN", "", MB_OK);
break;
}
return DefWindowProc(hWnd, message, wParam, lParam);
}