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

时间:2014-12-29 21:34:21

标签: 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

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

1 个答案:

答案 0 :(得分:1)

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