Bonjour à tous,
me voilà dans un certain embarras depuis quelques jours/semaines. J'ai du reprendre un programme existant (fonctionnant sur console), et ajouter une fenêtre via Win32 API, procédure relativement délicate quand on est habitué à Qt!
Me voici donc avec ma super fenêtre:
Comme vous pouvez le constater, je n'arrive pas à lier les différentes pages à ce qui devrait être leur contenu.
Voici le bout de code dans lequel je crée ma tab:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 iccx.dwSize = sizeof(INITCOMMONCONTROLSEX); iccx.dwICC = ICC_TAB_CLASSES; InitCommonControlsEx(&iccx); tab_handle = CreateWindowEx(WS_EX_CONTROLPARENT, WC_TABCONTROL, 0, WS_VISIBLE | WS_CHILD | WS_CLIPSIBLINGS, 10, 10, 605, 420, hwnd, HMENU(TAB_PAGES), GetModuleHandle(NULL), 0); Object->InserTabItem(tab_handle, L"Tab1", 0); Object->InserTabItem(tab_handle, L"Tab2", 1); Object->InserTabItem(tab_handle, L"Tab3", 2); Object->InserTabItem(tab_handle, L"Tab4", 3); button_handle = CreateWindowEx(0, WC_BUTTON, L"test-button-page2", WS_VISIBLE | WS_CHILD, 10, 50, 150, 30, tab_handle, HMENU(BT_TAB1_1), GetModuleHandle(NULL), 0); label_handle = CreateWindowEx(0, WC_STATIC, L"test-label-page1", WS_VISIBLE | WS_CHILD, 10, 100, 150, 30, tab_handle, HMENU(LAB_TAB2_1), GetModuleHandle(NULL), 0); //set the font of the tabs to a more typical system GUI font SendMessage(tab_handle, WM_SETFONT, reinterpret_cast<WPARAM>(GetStockObject(DEFAULT_GUI_FONT)), 0);
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 void CTRLWindows::InserTabItem(HWND handle, LPWSTR text, int id) { TCITEM tci = { 0 }; tci.mask = TCIF_TEXT | TCIF_IMAGE; tci.pszText = text; tci.cchTextMax = wcslen(text); TabCtrl_InsertItem(handle,id,&tci); //SendMessage(handle, TCM_INSERTITEM, id, LPARAM(&tci)); }
Ceci est inclu dans le "case: CREATE" de la callback d'une fenêtre windows api classique.
Ma question est:
Comment lier un bouton à une tab?
Comment faire fonctionner le tout?
J'ai vu des exemple utilisant MFC, je n'ai pas cette possibilité.
J'ai également vu des exemples qui proposent de changer la coordonnées des boutons assignées à une fenêtre hors de la fenêtre lorsque l'on change d'onglet, je trouve pas cela propre.
Je n'arrive pas à aller dans une callback lorsque je change d'onglet, je ne récupère aucun signal, peut etre est-ce là l'origine du probleme?
Je n'ai pas non plus trouvé comment assigner un bouton à une page, c'est un truc important qu'il me manque, mais je n'ai pas trouvé de tuto pour se faire.
Je vous remercie pour votre aide,
Yoda
Partager