DialogBox(hInstance,(LPCTSTR)IDD_SELECT_DLG, hWnd, (DLGPROC)SelectDlg);
  if(bGame==MultiPlayer)
DialogBox(hInstance,(LPCTSTR)IDD_UIMS_DLG,hWnd,(DLGPROC)UIMSDlg);
只能弹出第一个对话框,而第二个对话框并没有弹出(bGame==MultiPlayer,为真),对话框的回调函数分别是这么写的:
LRESULT CALLBACK  SelectDlg(HWND hDlg,UINT message,WPARAM wParam,LPARAM lParam)
{
switch(message)
{
case WM_INITDIALOG:
return TRUE;
case WM_COMMAND:
if(LOWORD(wParam)==IDC_Btn_SinglePlayer)
{
bGame=SinglePlayer;
EndDialog(hDlg,LOWORD(wParam));
return TRUE;
}
else if(LOWORD(wParam)==IDC_Btn_MultiPlayer)
{
bGame=MultiPlayer;
EndDialog(hDlg,LOWORD(wParam));
return TRUE;
}
else
{
EndDialog(hDlg,LOWORD(wParam));
//中止程序的执行
PostQuitMessage(0);
return FALSE;
} break;
}
return FALSE;
}LRESULT CALLBACK UIMSDlg(HWND hDlg,UINT message,WPARAM wParam,LPARAM lParam)
{
switch(message)
{
case WM_INITDIALOG:
return TRUE;
case WM_COMMAND:
if(LOWORD(wParam)==IDC_Btn_HOST)
{
iHostOrJoin=HOST;
EndDialog(hDlg,LOWORD(wParam));
return TRUE;
}
else if(LOWORD(wParam)==IDC_Btn_JOIN)
{
iHostOrJoin=JOIN;
EndDialog(hDlg,LOWORD(wParam));
return TRUE;
}
else
{
EndDialog(hDlg,LOWORD(wParam));
PostQuitMessage(0);
return FALSE;
}
break;
}
return FALSE;
}

解决方案 »

  1.   

    这个问题解决了,可是有产生了新的问题,就是在对话框中不支持IP ADDRESS控件,把它删掉就可以了,难道这是微软在win32 application下面的一个bug?
      

  2.   

    不是W32的BUG,是你的BUG,在使用IP ADDRESS之前要先调用InitCommonControlsEx函数。
      

  3.   

    请问,Zark(金陵五月):
      应该怎么用呢?
    InitCommonControlsEx的参数怎么设置对IP ADDRESS控件而言?
      

  4.   

    唉,告诉了你米在哪儿,你还得要把饭煮熟。INITCOMMONCONTROLSEX ex;
    ex.dwSize=sizeof(INITCOMMONCONTROLSEX);
    ex.dwICC=ICC_INTERNET_CLASSES;InitCommonControlsEx(&ex);
      

  5.   

    谢谢 Zark(金陵五月)问题解决,呵呵!!!