非模态对话框,esc键为何不好用了呢

非模态对话框,esc键为啥不好用了呢?
我用VS2010 使用win32 api开发,在主窗口上点击按钮创建了一个非模态对话框,我自己写了对话框的窗口过程,
也添加了处理ESC消息的代码,内容是退出对话框,,为啥不好用呢,就似非模态对话框弹出来后,点ESC也不会消失。。

------解决方案--------------------
C/C++ code

while (GetMessage(&msg, NULL, 0, 0))
{
   if (!IsDialogMessage(hwnd, &msg))
   {
      TranslateMessage(&msg); 
      DispatchMessage(&msg); 
    }
}

------解决方案--------------------
加上IsDialogMessage后,按ESC时会发WM_COMMAND给对话框,ID为2,相当于按下取消按钮

C/C++ code

case WM_COMMAND:
   switch (wParam)
   {
      case MAKEWPARAM(IDCANCEL, BN_CLICKED):
        DestroyWindow(hwnd);

   }



case WM_DESTROY:
  PostQuitMessage(0);