读书人

win32怎么从一个窗口发送消息到另一个

发布时间: 2012-08-24 10:00:21 作者: rapoo

win32如何从一个窗口发送消息到另一个窗口并使其关闭?
如下代码成功创建2个窗口
hwndChild = CreateWindow (szChildClass, NULL,
WS_CHILDWINDOW |WS_VSCROLL |WS_VISIBLE | WS_BORDER,
0, (int)MainWindowHeight*0.15, (int)MainWindowWidth*0.8, (int)MainWindowHeight*0.85,
hWnd, (HMENU) room_ChildID,
(HINSTANCE) GetWindowLong (hWnd, GWL_HINSTANCE),
NULL) ;
hwndinfoChild = CreateWindow (szinfoChildClass, NULL,
WS_CHILDWINDOW | WS_VSCROLL | WS_VISIBLE | WS_BORDER,
(int)MainWindowWidth*0.8, (int)MainWindowHeight*0.15, (int)MainWindowWidth*0.2, (int)MainWindowHeight*0.85,
hWnd, (HMENU) info_ChildID,
(HINSTANCE) GetWindowLong (hWnd, GWL_HINSTANCE),
NULL) ;



一个窗口:SendMessage(hwndinfoChild, MY_DESTROY , 0, 0);

另一个窗口:case MY_DESTROY :
MessageBox (NULL, TEXT ("TEST TEST!"),
TEXT("Room"), MB_ICONERROR);

DestroyWindow(hwndinfoChild);
return 0 ;

通过MessageBox可以确认已经收到了消息,但窗口关闭不了,程序也不出错。求指导。谢谢!

[解决办法]
处理WM_CLOSE事件呀
::SendMessage(对方窗体句柄,WM_CLOSE,NULL,NULL);
应该就可以了


当然如果你需要再做点什么事情可以自定义事件
this->close();
[解决办法]
感谢,学习学习.
[解决办法]
处理WM_CLOSE事件呀,获得对方窗体句柄用SendMessage应该就可以了
[解决办法]
WM_CLOSE
[解决办法]
标准窗口发送WM_CLOSE消息就可以关闭窗口了
[解决办法]
DestroyWindow 应该可以关闭窗口啊,是不是父窗口没有刷新引起的
UpdateWindow 或 RedrawWindow 强制刷新下试试看
[解决办法]
FindWindow找到窗口句柄 -》PostMessage/SendMessage发送WM_CLOSE消息
[解决办法]
给窗口发送WM_CLOSE就行了

读书人网 >VC/MFC

热点推荐