[問題] 關於DialogBox...
大家好,我有個視窗程式的問題想請教大家!!
程式的主視窗(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
01/18 01:47, 1F
→
01/18 02:06, , 2F
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
01/18 08:24, 5F
※ 編輯: cscaaucwcxa 來自: 114.37.163.157 (01/18 11:28)