【发布时间】:2011-07-06 14:35:57
【问题描述】:
如何从现有对话框创建子对话框?
声明(全局范围)
HINSTANCE hInst;
HWND hWnd;
WinMain:
int APIENTRY WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow )
{
DialogBox(hInstance, MAKEINTRESOURCE(IDD_MAIN),hWnd, (DLGPROC)DlgProc);
//MessageBox (NULL, TEXT ("Hello, Windows 98!"), TEXT ("HelloMsg"), 0);
return 0;
}
DlgProc:
LRESULT CALLBACK DlgProc(HWND hWndDlg, UINT Msg, WPARAM wParam, LPARAM lParam)
{
switch(Msg)
{
case WM_COMMAND:
switch(LOWORD(wParam))
{
case IDM_ABOUT:
//DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUT),hWnd, (DLGPROC)AboutDlgProc);
DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUT),hWndDlg, (DLGPROC)AboutDlgProc); //changed to this...
return 0;
}
break;
}
}
AboutDlgProc:
BOOL CALLBACK AboutDlgProc (HWND hDlg, UINT message,
WPARAM wParam, LPARAM lParam)
{
switch (message)
{
case WM_CREATE:
hInst = ((LPCREATESTRUCT) lParam)->hInstance ;
return 0;
case WM_INITDIALOG :
ShowWindow (hDlg, SW_HIDE);
return TRUE ;
case WM_COMMAND :
switch (LOWORD (wParam))
{
case IDOK :
case IDCANCEL :
EndDialog (hDlg, 0) ;
return TRUE ;
}
break ;
}
return FALSE ;
}
当我点击一个名为 About(IDM_ABOUT) 的菜单项时,没有任何反应。 那么如何创建关于对话框?
编辑
现在可以弹出关于对话框。之前无法弹出关于对话框的原因是我在对话框中拖了一个MFC Link控件。由于我的 win32 sdk 应用程序不支持 MFC ,所以它失败了。哈哈。
【问题讨论】: