我在窗体过程回调函数中加入了如下代码,
为什么,在按任意键时,窗体可以消失,可是程序还在运行..
case WM_DESTROY:
{
PostQuitMessage(0);
return 0L;
}
case WM_KEYDOWN:
{
PostMessage(hWnd, WM_CLOSE, 0, 0);
return 0L;
}
请会的人指点一下,顺便说说原理!
为什么,在按任意键时,窗体可以消失,可是程序还在运行..
case WM_DESTROY:
{
PostQuitMessage(0);
return 0L;
}
case WM_KEYDOWN:
{
PostMessage(hWnd, WM_CLOSE, 0, 0);
return 0L;
}
请会的人指点一下,顺便说说原理!
解决方案 »
- 如何在Unicode字符集下读写中文的txt文件
- 一个关于菜单的问题,大家有没有遇到过?
- 如何用c++实现把一个文件中的exe文件全部创立快捷方式并使它们移动到指定文件夹?
- 搞软件的人,若不认识它,也许是件遗憾的事
- lib工程在何处添加ws2_32.lib
- 请问哪里能买到vc技术内幕第四版呢?是不是买不到了?
- 请教:如何将标准的c文件加入到mfc中?
- 找了好多,没找到用c/或c++发mail的程序,那位给一个Sample吧,多谢!
- 怎么在windows程序中得到CPU主频??
- 谁能给我讲将怎么发邮件用VC编程!!!!!代码 或 文档什么的 多谢了!
- 播放avi时候,如何截取视频中的某段区域影响另存成avi?
- 怎样让自己的程序界面更加友好?
{
PostQuitMessage(0);
return 0L;
}
case WM_KEYDOWN:
{
PostQuitMessage(0);
return 0L;
{
PostMessage(hWnd, WM_CLOSE, 0, 0);
return 0L;
}
=================================
不就是有按键被按下的时候,关闭程序吗!?
WM_CLOSE会导致发出WM_DESTROY,PostQuitMessage发出WM_QUIT导致程序退出。理论上你的程序是没有问题的,要是“窗体可以消失,可是程序还在运行..”,那就肯定是你其他部分有问题!
所以我也很疑惑啊!?
消息循环是标准的样式:
while(true)
{
if(PeekMessage(&msg, NULL, 0, 0, PM_NOREMOVE))
{
if(!GetMessage(&msg, NULL, 0, 0)
return (int)msg.wParam;
TranslateMessage(&msg);
DispatchMessage(&msg);
}
else
{
WaitMessage();
}
}