2012-02-24 2 views
0

Привет всем Я надеюсь, что кто-то может мне помочь Я работаю над простым приложением, которое использует элементы управления вкладками, которые я установил и работаю нормально. Мои обработчики для второй вкладки диалогового окна находятся ниже и содержат всплывающее окно для подтверждения нажатия кнопки, которая работает нормально.C++ WinApi Tab Help Calling Main Static Bar

INT_PTR CALLBACK TabDialogTwo(HWND hwndDlg,UINT uMsg,WPARAM wParam,LPARAM lParam) 
{ 
    switch (uMsg) 
    { 
    case WM_INITDIALOG: 
     break; 
     case WM_COMMAND:  
      { 

      switch (LOWORD(wParam)) 
      { 
      case IDC_CHECK_ACCOUNT: 
       // This doesnt work 
        HWND hwndStatic = GetDlgItem(hwndDlg, IDC_STATIC1); 
    Static_SetText(hwndStatic, "Button Works"); 
    // This does as expected 
       MessageBox(hwndDlg,TEXT("User Account Selected"),TEXT("Button"),0); 
       break; 
      } 
      break; 
      } 

    } 
    return FALSE ; 
} 

Моя проблема кнопки, которые находятся на моих закладках управления обыкновение обновлять мой статический бар с помощью этого кода

// This doesnt work from inside the tab window but does work in my intial dialog function 
     HWND hwndStatic = GetDlgItem(hwndDlg, IDC_STATIC1); 
     Static_SetText(hwndStatic, "Button Works???"); 

мне нужно изменить дескриптор hwnd-> hwndDlg ли? это не так однозначно, как его нет.

Все, что я хочу сделать, это изменить свою строку состояния из элементов управления вкладками, возможно ли это? Я искал 8 дней без остановки, поэтому подумал, что попрошу экспертов.

Большое спасибо

UPDATE ИСПРАВЛЕНО: См Pezcode пример ниже. благодаря всем помощникам.

ответ

0

Заменить

HWND hwndStatic = GetDlgItem(hwndDlg, IDC_STATIC1); 

с

HWND hwndStatic = GetDlgItem(GetParent(GetParent(hwndDlg)), IDC_STATIC1); 

GetDlgItem только получает контроль внутри окна, вы даете ему. hwndDlg в этом контексте - диалог внутри вкладки. Но чтобы получить дескриптор hwndStatic на статическую панель главного диалога, вам нужно встать на два уровня (через API GetParent). Как только вкладка управления вкладкой, еще один вверх ваш основной диалог.

+0

спасибо Pezcode это сработало. Ты заставил меня так рад, что все это уложило. Также Luskan и Gunner thx топ-парни. –