到目前为止,我已经查看了MSDN大约2个小时,我仍然对如何使用对话框感到困惑。我试过在谷歌上阅读几个例子,并且进一步混淆了。
目前我有一个弹出菜单,其选项只是被选中和取消选中,菜单上的最后一项是显示一个对话框,在对话框中我将有一个收音机的组合框按钮,但我不确定在何处创建对话框或要创建哪种对话框以显示弹出菜单。
它是在WM_CREATE消息中创建的,我认为它可能就像创建一个窗口一样简单它看起来不像吗?
或者它是在我触发弹出菜单项的WM_COMMAND中制作的。
案例ID_TOOL_TOOLBOX是应该调用对话框以显示或创建的对象。但是我不确定它是在那里创建的,甚至不是要创建什么样的对话框。
还是其他完全不同的地方?
case WM_COMMAND:
case ID_TOOL_POLYGON:
CheckMenuItem(hMenu, Selection, MF_UNCHECKED);
Selection = LOWORD(wParam);
CheckMenuItem(hMenu, Selection, MF_CHECKED);
if (GetMenuState(hMenu, Selection, MF_BYCOMMAND) == MF_CHECKED)
{
MessageBox(hwnd, L"Polygon does nothing this is a test popup msgbox.", L"Works", MB_OK);
}
break;
case ID_TOOL_SELECT:
CheckMenuItem(hMenu, Selection, MF_UNCHECKED);
Selection = LOWORD(wParam);
CheckMenuItem(hMenu, Selection, MF_CHECKED);
break;
case ID_TOOL_TOOLBOX:
答案 0 :(得分:2)
这是我们搜索“win32 ShowDialog”时首次出现的点击之一:
http://www.functionx.com/win32/Lesson04.htm
使用DialogBox函数创建一个对话框。它的语法是:
INT_PTR DialogBox(HINSTANCE hInstance,LPCTSTR lpTemplate,HWND hWndParent,DLGPROC lpDialogFunc);
此函数的第一个参数是应用程序的句柄 正在使用对话框。
lpTemplate指定对话框模板。
hWndParent是拥有此对话框的父窗口的句柄 框。
lpDialofFunc必须是负责创建此过程的过程 对话框。
因此,您必须定义一个CALLBACK过程,其语法为:
INT_PTR CALLBACK DialogProc(HWND hwndDlg,UINT uMsg,WPARAM wParam, LPARAM lParam);