在一个COM组件中,有一个CWnd窗口,在里面定义了自定义消息,但是在COM中无论是PostMessage还是SendMessage,该窗口都收不到这个消息。在外面使用这个CWnd类都是好用的,一放到COM中就收不到消息了。另外调用COM组件的是控制台程序,CWnd用如下方法创建:
另外我还试过ATL的Window模板类,也不能使用消息。WNDCLASSEX wndclass;
wndclass.cbSize=sizeof wndclass;
wndclass.style=0;
wndclass.lpfnWndProc=WindowProc;
wndclass.cbClsExtra=0;
wndclass.cbWndExtra=0;
wndclass.hInstance=GetModuleHandle(0);
wndclass.hIcon=0;
wndclass.hCursor=0;
wndclass.hbrBackground=0;
wndclass.lpszMenuName=0;
wndclass.lpszClassName=_T("Helper Window");
wndclass.hIconSm=0;RegisterClassEx(&wndclass);
m_hWnd=CreateWindow(_T("Helper Window"), _T("Helper Window"), 0, 0, 0, 0, 0, 0, 0, 0, GetModuleHandle(0));
另外我还试过ATL的Window模板类,也不能使用消息。WNDCLASSEX wndclass;
wndclass.cbSize=sizeof wndclass;
wndclass.style=0;
wndclass.lpfnWndProc=WindowProc;
wndclass.cbClsExtra=0;
wndclass.cbWndExtra=0;
wndclass.hInstance=GetModuleHandle(0);
wndclass.hIcon=0;
wndclass.hCursor=0;
wndclass.hbrBackground=0;
wndclass.lpszMenuName=0;
wndclass.lpszClassName=_T("Helper Window");
wndclass.hIconSm=0;RegisterClassEx(&wndclass);
m_hWnd=CreateWindow(_T("Helper Window"), _T("Helper Window"), 0, 0, 0, 0, 0, 0, 0, 0, GetModuleHandle(0));
解决方案 »
- 读入二进制文件,转换成ascii码,然后写入文本文件中,如何实现?
- 我想在dialog里加一个图片,想随时让这个图片可以隐藏或显示出来.如何做?
- 小问题,求助!
- 在VC++中设断点的命令在哪儿?
- opengl中的一个纹理贴图的问题!
- 这样可能吗?
- 请问如何设置CFileDialog默认保存的文件名,我用dlg.m_ofn.lpstrFile = "test.xls";可是运行到dlg.DoModal()却提示系统错误,请问怎么回事
- 高分求《精通VISUAL C++图像编程》源码, [email protected]
- 生成文本文件的小问题,但我就不知道是怎么了?
- 如何得到鼠标所在位置的工具条按钮的ID,以实现DROPDOWN功能?
- 我的问题
- 这张图有问题吗???
::PostMessage(pWnd->m_hWnd, WM_USER, 0, 0);
::PostMessage(pWnd->GetSafeHwnd(), WM_USER, 0, 0);pWnd->SendMessage(WM_USER, 0, 0);
::SendMessage(pWnd->m_hWnd, WM_USER, 0, 0);
::SendMessage(pWnd->GetSafeHwnd(), WM_USER, 0, 0);以上几种SEND MESSAGE方法都接收不到,但是如果不是在COM中使用这个CWnd,就全可以收到。另外需要提的是,如果使用SendMessage,会在SendMessage语句处阻塞掉,因为在等待返回。有谁有这样的经验吗?谢谢!
try to use COM calles instead of sending messages