Я использую 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
), предположительно потому, что в этом случае отсутствует вкладка.