我把不使用MFC,直接通过编程制作对话框叫做手工制作对话框。
现在我正在完成这样的工作。举个例子。
在我建立了一个窗口后,使用INSERT菜单插入了一个MENU选项和一个对话框。在这个对话框中自动有OK和不OK两个BUTTON,其ID分别为IDOK和IDCANCEL。然后我对这个对话框进行编程。LRESULT CALLBACK Dialog1(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
  switch(message)
  {
   case WM_INIT:
      return TRUE;
   case WM_COMMAND:
      {
        if(LOWORD(lParam) ==  IDOK || LOWORD(lParam) == IDCANCEL)
        EnDialog(......);
      }
   }
   reutrn FALSE;
}菜单通过对这个程序的调用,可以正常地执行功能,即按下OK 或CANCEL后,关闭对话框。
但是,如果我新建一个对话框,并用资源在其中插入一个BUTTON,其ID为ID_BUTTON1,这时我用下列程序:LRESULT CALLBACK Dialog1(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
  switch(message)
  {
   case WM_INIT:
      return TRUE;
   case WM_COMMAND:
      {
        if(LOWORD(lParam) ==  ID_BUTTON1)
        EnDialog(......);
      }
   }
   reutrn FALSE;
}
却发现,对话框被激活后,我INSERT的BUTTON无法被按下,可是我明明是有对按钮进行处理的,按理说这个BUTTON同OK与CANCEL同属一类资源,应当可以同样操作,可是为什么这里却有问题呢?我是个菜鸟,相信这个问题并不高明,请高手指教。