c - 如何获取单击打开对话框的按钮的控件 ID?

标签 c winapi

我有一个带有许多按钮的对话框。单击其中任何一个都将创建一个基于单个模板的“子”对话框(如果这是正确的术语...资源文件中的单个子对话框定义和 ID)。

例如,从父对话框的对话框过程中:

case WM_COMMAND:
    switch (LOWORD(wparam)) {
        case IDC_MAPBUT1:
        case IDC_MAPBUT2:
        case IDC_MAPBUT3:
        case IDC_MAPBUT4:
        case IDC_MAPBUT5:
        case IDC_MAPBUT6:
        case IDC_MAPBUT7:
        case IDC_MAPBUT8:
        case IDC_MAPBUT9:
        case IDC_MAPBUT10:
            DialogBox(
                g_hinstance,
                MAKEINTRESOURCE(IDD_DIALOG2),
                hwnd,
                CPUMapDlgProc);
            return TRUE;
        //etc

我需要知道单击了哪一个按钮(仍在子对话框中),因为我需要从相应的结构中读取数据。我怎样才能做到这一点?

最佳答案

LOWORD(wparam) 的值保存在 CPUMapDlgProc 可以查看的全局变量中,或者调用 DialogBoxParam 并将其作为WM_INITDIALOG 消息的参数。

关于c - 如何获取单击打开对话框的按钮的控件 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27696374/

相关文章:

Windows 系统编程 : Can a keystroke be sent to an open application that is not the currently active one?

winapi - WS_VSCROLL,CreateWindow样式有效,SetWindowLong不起作用

python - 为 Python C 扩展类型定义 __eq__

c - Pop 在特定函数中仅起作用一次

c - 虽然有多个条件

winapi - 使用 WINAPI 而不是鼠标强制显示工具提示

c - Windows 和 Windows 窗体

c - 如何检查c套接字中的TCP端口是否可用?

c - 何时使用 OpenGL 显示列表?

c++ - 保持窗口始终在顶部——包括菜单 (win32)