对话框为啥不显示额,没有显示
对话框为什么不显示额,没有显示
模式对话框已经有消息循环了,Dialogbox内部有 WINDCLASS 了,所以我没有加。
一下代码是没有显示对话框的。
------解决方案--------------------
DialogBox(hInstance,MAKEINTRESOURCE("IDD_DIALOG1 "),NULL,DlgWndProc);
============
一般资源ID不是字符,改成这样试试:
DialogBox(hInstance,MAKEINTRESOURCE(IDD_DIALOG1),NULL,DlgWndProc);
模式对话框已经有消息循环了,Dialogbox内部有 WINDCLASS 了,所以我没有加。
一下代码是没有显示对话框的。
- C/C++ code
/*------------------------------------------ ABOUT1.C -- About Box Demo Program No. 1 (c) Charles Petzold, 1998 ------------------------------------------*/ #include <windows.h> #include "resource.h" static HINSTANCE g_hIn=NULL; INT_PTR CALLBACK DlgWndProc (HWND, UINT, WPARAM, LPARAM) ; //对话框窗口函数 INT_PTR CALLBACK AboutDlgProc (HWND, UINT, WPARAM, LPARAM) ; int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow) { DialogBox(hInstance,MAKEINTRESOURCE("IDD_DIALOG1 "),NULL,DlgWndProc); return 0; } // // /////////////////////////////////////////////////////////////////////////////// //// //// Dialog //// // //IDD_DIALOG1 DIALOGEX 0, 0, 316, 183 //STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU //CAPTION "Dialog" //FONT 8, "MS Shell Dlg", 400, 0, 0x1 //BEGIN //DEFPUSHBUTTON "确定",IDOK,205,162,50,14 //PUSHBUTTON "取消",IDCANCEL,259,162,50,14 //END INT_PTR CALLBACK DlgWndProc(HWND hwnd, UINT uMsg, WPARAM wp, LPARAM lp) //对话框窗口函数 { switch(uMsg) { case WM_COMMAND : { if((LOWORD (wp))==IDM_APP_ABOUT) //对话框上的id, 如:关于 { DialogBox (g_hIn, TEXT ("AboutBox"), hwnd, AboutDlgProc) ; break ; } else break; } case WM_DESTROY : PostQuitMessage (0) ; return 0 ; default: return DefWindowProc (hwnd, uMsg, wp, lp) ; } return 0; } INT_PTR CALLBACK AboutDlgProc (HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) { switch (uMsg) { case WM_COMMAND : { switch (LOWORD (wParam)) //关于对话框上的id,如ok, cancel { case IDOK: case IDCANCEL: EndDialog(hDlg,0); return 0 ; default: break; } break ; } default: return DefWindowProc (hDlg, uMsg, wParam, lParam) ; } return 0 ; }
------解决方案--------------------
DialogBox(hInstance,MAKEINTRESOURCE("IDD_DIALOG1 "),NULL,DlgWndProc);
============
一般资源ID不是字符,改成这样试试:
DialogBox(hInstance,MAKEINTRESOURCE(IDD_DIALOG1),NULL,DlgWndProc);