【问题标题】:Having a popup menu show/create a dialog box? Windows32 programming有一个弹出菜单显示/创建一个对话框? Windows32 编程
【发布时间】:2012-11-14 14:51:12
【问题描述】:

到目前为止,我已经查看了 MSDN 大约 2 个小时,但我仍然对如何使用对话框感到非常困惑。我尝试在 google 上阅读几个示例,但进一步感到困惑。

目前我有一个弹出菜单,它的选项只是被选中和取消选中,我在菜单上的最后一项是显示一个对话框,在对话框内我将有一个用于某些收音机的组框按钮,但我不确定在哪里创建对话框或创建什么样的对话框以在弹出菜单中显示。
它是在 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:

【问题讨论】:

  • 您想要一个带有字符串和 1 到 3 个按钮的“罐装”预定义消息框吗?或者你想要一个从资源中的窗口描述创建的自定义对话框,比如设置对话框?
  • @Arkadiy 一个专门用于交互的对话框,而不是一个消息框。该对话框将像一个分组框一样,其中可能包含 1-4 个单选按钮,对于我没有遇到的链接 :(。是的,它有点像设置对话框!它将切换某些功能我正在编写的程序只是试图绘制一些形状,对话框将帮助使用单选按钮完成它们之间的切换
  • 在这种情况下,您需要使用对话框编辑器准备模板,然后按照下面的教程在屏幕上将模板显示为对话框。
  • 我现在可以使用了,谢谢!在我的 ID_TOOL_TOOLBOX 中,我刚刚添加了一个 ShowWindow(hdialogbox, SW_SHOW);从您提供的链接在 winmain 中创建后。

标签: c winapi dialog popupmenu


【解决方案1】:

这是我们搜索“win32 ShowDialog”时首先出现的点击之一:

http://www.functionx.com/win32/Lesson04.htm

使用 DialogBox 函数创建一个对话框。它的语法是:

INT_PTR 对话框(HINSTANCE hInstance,LPCTSTR lpTemplate,HWND hWndParent, DLGPROC lpDialogFunc);

此函数的第一个参数是应用程序的句柄 即使用对话框。

lpTemplate 指定对话框模板。

hWndParent 是拥有此对话框的父窗口的句柄 盒子。

lpDialofFunc 必须是一个负责创建这个的过程 对话框。

因此,您必须定义一个 CALLBACK 过程,其语法为:

INT_PTR CALLBACK DialogProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-03-11
    • 1970-01-01
    • 2011-08-05
    • 2010-11-22
    • 2018-08-03
    • 2016-04-15
    • 2021-09-02
    • 2019-05-28
    相关资源
    最近更新 更多