winapi — Как определить текущую активную страницу в окне свойств (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?

0

Решение

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

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

1

Другие решения


По вопросам рекламы [email protected]