c++ - 如何检测属性表中的当前事件页面 (C++/VS)

标签 c++ winapi propertysheet

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

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

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 中的消息的名称是什么?

最佳答案

使用PSM_GETTABCONTROL (或 PropSheet_GetTabControl 宏)获取选项卡控件的句柄,然后使用 TCM_GETCURSEL消息(或 TabCtrl_GetCurSel 宏)来查询当前选定的选项卡索引。

请注意,如果使用 Aero 向导样式 (PSH_AEROWIZARD),这被记录为无效,可能是因为在这种情况下没有选项卡控件。

关于c++ - 如何检测属性表中的当前事件页面 (C++/VS),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31348594/

相关文章:

c++ - 分配 native C++ 结构的 CX 公共(public)值结构内容

c++ - Qt 应用程序随机崩溃通过使用回调和从 std::thread 或 boost::thread 发出信号

windows - 名称中带有冒号的文件会发生什么情况?

c++ - 无法使用 PropSheet 创建居中的属性表对话框

c++ - 通过名称查找进程ID的快速方法

c++ - opencv 将 2 个图像与 y 方向的偏移量结合起来

C++\Win32 API - WC_BUTTON 和 "BUTTON"窗口类之间的差异

windows - 如何在 Delphi 中枚举另一个进程的窗口?

c++ - 如何制作 ADUC 属性表 DLL