我在窗体过程回调函数中加入了如下代码,
为什么,在按任意键时,窗体可以消失,可是程序还在运行..
         case WM_DESTROY:
{
PostQuitMessage(0);
return 0L;
}
case WM_KEYDOWN:
{
PostMessage(hWnd, WM_CLOSE, 0, 0);
return 0L;
}
请会的人指点一下,顺便说说原理!

解决方案 »

  1.   

    case WM_DESTROY:
    {
    PostQuitMessage(0);
    return 0L;
    }
    case WM_KEYDOWN:
    {
    PostQuitMessage(0);
    return 0L;
      

  2.   

    同意楼上!WM_CLOSE只是通知关闭窗口,不是退出程序。
      

  3.   

    case WM_KEYDOWN:
    {
    PostMessage(hWnd, WM_CLOSE, 0, 0);
    return 0L;
    }
    =================================
    不就是有按键被按下的时候,关闭程序吗!?
    WM_CLOSE会导致发出WM_DESTROY,PostQuitMessage发出WM_QUIT导致程序退出。理论上你的程序是没有问题的,要是“窗体可以消失,可是程序还在运行..”,那就肯定是你其他部分有问题!
      

  4.   

    你的代码,一按键就会发送WM_CLOSE退出程序的
      

  5.   

    可是我在过程函数里没有加任何的其他代码,就这两个case,
    所以我也很疑惑啊!?
    消息循环是标准的样式:
    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();
        }
    }