如何检测属性表(C ++ / VS)中的当前活动页面

时间:2015-07-10 19:13:47

标签: c++ winapi propertysheet

我正在使用Visual Studio C ++ 2010,我需要检测属性表的当前活动页面。我希望在用户激活Page时应该发送一些消息告诉我。但我没有找到该消息以及将其置于对话过程中的位置。

在我使用的程序中,有一个主要的对话过程:

INT_PTR CALLBACK MainDlgProc(HWND hSheet, UINT msg, WPARAM wParam, LPARAM lParam)
{
    INT_PTR ret = FALSE;

    switch (msg)
    {
    // bla bla
    case WM_COMMAND:
        ret = 0;    //processing message
        if (!Sheet_HandleCommand(hSheet, HIWORD(wParam), LOWORD(wParam), (HWND)lParam))
            CALLPROC();
        break;

    case WM_DESTROY:
        // bla bla
        return CALLPROC();    
    default:
        return CALLPROC();
    }

    return ret;
}

我知道如何处理,但我不知道在哪里安装"它在代码中。要将其包含在MainDlgProc中的消息的名称是什么?

1 个答案:

答案 0 :(得分:1)

使用PSM_GETTABCONTROL(或PropSheet_GetTabControl宏)获取制表符控件的句柄,然后使用TCM_GETCURSEL消息(或TabCtrl_GetCurSel宏)进行查询当前选中的标签索引。

请注意,如果使用Aero向导样式(PSH_AEROWIZARD),则说明这不起作用,可能是因为在这种情况下没有制表符控件。