2013-06-01 3 views
0

У меня есть 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; 

любое предложение?

+0

Вы подтвердили, что вы все еще получаете уведомления TCN_SELCHANGE и что 'TabCtrl_GetCurSel()' не терпит неудачу? –

+0

да делаем. Я отслеживаю программу, и каждый раз, когда я просматриваю каждый «ЕСЛИ» правильно, но «ShowWindow» не имеет никакого эффекта! – user667222

ответ

0

Я думаю, что я понял это. Я инициализировал вкладку в WM_INITDIALOG, которая оказалась проблемой, потому что каждый раз, когда приложение, отображающее диалоговые окна вкладок, отправляет это сообщение и снова инициализирует его. Я удаляю эту часть из initdialog до инициализации приложения до ввода цикла сообщения

Смежные вопросы