[問題] 關於DialogBox...

看板C_and_CPP作者 (似人非人)時間16年前 (2010/01/18 00:55), 編輯推噓0(005)
留言5則, 2人參與, 最新討論串1/1
大家好,我有個視窗程式的問題想請教大家!! 程式的主視窗(dialog-base)有一個menu,某item是再開啟一個modal dialogbox , 但是當我關掉該dialogbox時,主視窗也跟著結束了... 新手的我百思不得其解...程式如下,請各位高手幫忙解惑,謝謝。 #include ... 略 ... int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { MSG msg; int status; hInst = hInstance; LoadString(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING); hMainDlg = CreateDialog(hInst, (LPCTSTR)IDD_ClientDlg, NULL, (DLGPROC)ClientProc); while((status = GetMessage(&msg, NULL, 0 ,0)) != 0) { if(status == -1) return -1; if(!IsDialogMessage(hMainDlg, &msg)) { TranslateMessage(&msg); DispatchMessage(&msg); } } return msg.wParam; } LRESULT CALLBACK ClientProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) { switch(message) { case WM_INITDIALOG: return TRUE; case WM_COMMAND: switch(LOWORD(wParam)) { case IDM_EXIT: DestroyWindow(hDlg); break; case IDD_Login: DialogBox(hInst, (LPCTSTR)IDD_LoginDlg, hDlg, (DLGPROC)LoginProc); break; } case WM_DESTROY: //....................問題出在這 PostQuitMessage(0); break; } return FALSE; } LRESULT CALLBACK LoginProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) { switch (message) { case WM_INITDIALOG: return TRUE; case WM_COMMAND: if (LOWORD(wParam) == IDOK) { EndDialog(hDlg, LOWORD(wParam)); return TRUE; } break; } return FALSE; } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.37.163.157 ※ 編輯: cscaaucwcxa 來自: 114.37.163.157 (01/18 00:56)

01/18 01:47, , 1F
結束的部分就直接找結束的地方,就是 exit 有問題~
01/18 01:47, 1F

01/18 02:06, , 2F
還有,你的RegisterClass跑哪去了?
01/18 02:06, 2F

01/18 08:22, , 3F
像是一般程式裡的"關於我"打開之後也只有"確認"按鈕
01/18 08:22, 3F

01/18 08:23, , 4F
可以按,按了之後會關掉該對話框,所以我是仿照該方式
01/18 08:23, 4F

01/18 08:24, , 5F
RegisterClass??根據我的了解@@Dialog based不需要
01/18 08:24, 5F
※ 編輯: cscaaucwcxa 來自: 114.37.163.157 (01/18 11:28)
文章代碼(AID): #1BKq3qZC (C_and_CPP)