在消息循环
while(GetMessage(..))
{
    switch msg.message
    {
        case ...
        case ...
    }
}把TranslateMessage和DispatchMessage抛弃掉,可以吗?
会引起哪些问题吗?

解决方案 »

  1.   

    http://blog.csdn.net/jiangsheng/archive/2004/07/11/39208.aspx
      

  2.   

    可以,你可以直接使用资源中的对话框模板:
    #include <windows.h>
    #include "resource.h"
    LRESULT CALLBACK ProcMain(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam)
    {
      switch (Msg)
      {
      case WM_CLOSE:
        EndDialog(hDlg, 0);
        break;
      case WM_DESTROY:
        PostQuitMessage(0);
        break;
      }
      return 0;
    }int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd)
    {
      DialogBoxParam(hInstance, MAKEINTRESOURCE(IDD_DIALOG), NULL, (DLGPROC)ProcMain, 0);
      return 0;
    }
      

  3.   

    应该是窗口函数接受不到消息了,DispatchMessage用于将消息分配给对应的窗口;TranslateMessage用来转换键盘消息,没有了DispatchMessage,有没有TranslageMessage消息都一样了
      

  4.   

    按理应该不行的。
    TranslageMessage DispatchMessage 内部处理了消息,特别是sendmessage过来的消息。
    你的getmessage只能够收到postmessage过来的消息,也就是说你是不能够得到所有的消息的。
    应此抛开系统的不行。