Как определить текущую активную страницу в окне свойств (C++/VS)

Я использую 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?

1 ответ

Использование PSM_GETTABCONTROL (или PropSheet_GetTabControl макрос), чтобы получить дескриптор элемента управления вкладки, а затем использовать TCM_GETCURSEL сообщение (или TabCtrl_GetCurSel макрос), чтобы запросить текущий выбранный индекс вкладки.

Обратите внимание, что документально это не работает, если используется стиль мастера Aero (PSH_AEROWIZARD), предположительно потому, что в этом случае отсутствует вкладка.

Другие вопросы по тегам