У меня есть GUI состоит из 3 элементов управления вкладками , когда я нажимаю на каждую вкладку, отображаются элементы управления на этой вкладке (есть диалоговое окно для каждой вкладки, которое я показываю при нажатии этой вкладки) приложение имеет другое диалоговое окно, когда я меняю фокус на это диалоговое окно или любое другое окно или программу и возвращаюсь обратно к основной программе. Я просто вижу вкладку, которую я оставил до и когда я нажимаю другие вкладки, которые они не показывают вверх.вкладки не работают, когда я теряю фокус
инициализирую вкладки в WM_INITDIALOG
и я покажу, когда каждый из них нажата в WM_NOTIFY
так:
case WM_NOTIFY:
switch (((LPNMHDR)lParam)->code)
{
case TCN_SELCHANGING:
{
// Return FALSE to allow the selection to change.
return FALSE;
}
break;
case TCN_SELCHANGE:
{
if(TabCtrl_GetCurSel(((LPNMHDR) lParam) -> hwndFrom) == 0) {
ShowWindow(hwndTimeFrame, SW_HIDE);
ShowWindow(hwndAR, SW_HIDE);
ShowWindow(hwndInsFeed, SW_SHOW);
}
if(TabCtrl_GetCurSel(((LPNMHDR) lParam) -> hwndFrom) == 1)
{
ShowWindow(hwndInsFeed, SW_HIDE);
ShowWindow(hwndAR, SW_HIDE);
ShowWindow(hwndTimeFrame, SW_SHOW);
}
if(TabCtrl_GetCurSel(((LPNMHDR) lParam) -> hwndFrom) == 2)
{
ShowWindow(hwndInsFeed, SW_HIDE);
ShowWindow(hwndTimeFrame, SW_HIDE);
ShowWindow(hwndAR, SW_SHOW);
}
}
break;
}
break;
любое предложение?
Вы подтвердили, что вы все еще получаете уведомления TCN_SELCHANGE и что 'TabCtrl_GetCurSel()' не терпит неудачу? –
да делаем. Я отслеживаю программу, и каждый раз, когда я просматриваю каждый «ЕСЛИ» правильно, но «ShowWindow» не имеет никакого эффекта! – user667222