Bonjour,
J'ai un programme MFC qui est organis� comme cela :
- Une MainFrame (appel�e CMainFrameTabbed) qui embarque un TabCtrl.
- La 1ere vue de ce TabCtrl est une CMiniFrameWnd (appel�e CFrameMibBrowser) avec un splitter
- un CtreeView (appel�e CMibBrowserLeftTree) sur la vue de gauche de ce CMiniFrameWnd
- et un CFormView sur la vue de droite de ce CMiniFrameWnd.
- La 2eme vue de ce TabCtrl est une CListView
Je trace toute les pertes de focus ainsi que toutes les reprises du focus (du moins je l'esp�re) dans l'application.
Lors de l'initialisation de l'application, c'est la CTreeView (appel�e CMibBrowserLeftTree) qui doit avoir le focus et voici les trace que je r�colte :
Pour une raison que j'ignore, CMibBrowserLeftTree prend le focus (ligne en vert) et le perd aussit�t (ligne en rouge).
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10 CMainFrameTabbed::OnActivate(state=1, oldWnd=0000000000000000) CMainFrameTabbed(00000000002105A6) ==> Gaining the focus, 0000000000000000 is loosing it CMainFrameTabbed(00000000002105A6) ==> Setting focus to 00000000003002AE CMainFrameTabbed(00000000002105A6) ==> Loosing the focus, 00000000003002AE will gain it CFrameMibBrowser(00000000003002AE) ==> Gaining the focus, 00000000002105A6 is loosing it CFrameMibBrowser(00000000003002AE) ==> Setting focus to 00000000002802DC CFrameMibBrowser(00000000003002AE) ==> Loosing the focus, 00000000002802DC will gain it OK ==> CMibBrowserLeftTree(00000000002802DC) ==> Gaining the focus, 00000000003002AE is loosing it BAD ==> CMibBrowserLeftTree(00000000002802DC) ==> Loosing the focus, 00000000000E0428 will gain it
Les valeurs que j'affiche sont les HWND des fen�tres et en regardant avec Spy++, la fen�tre dont le HWND est E0428 (ligne en rouge) est inconnu.
Et bien s�r, mon CTreeView n'a pas le focus, c'est � dire que l'appui sur les fl�ches du clavier ne me fait pas me promener dans l'arbre (comportement par d�faut attendu).
Par contre, d�s que je clique dans le CTreeView, je r�cup�re le focus, je ne le reperds plus et le comportement par d�faut avec les fl�ches du clavier fonctionne. Voici les traces que j'obtiens :
Qui peut me dire ce qu'il se passe, j'ai l'impression que j'ai un probl�me d'activation de mes fen�tres. En attachement, une vue dans l'application pour fixer les id�es.
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2 CMibBrowserLeftTree::OnActivateView(bActivate=1) CMibBrowserLeftTree(00000000004B02DE) ==> Gaining the focus, 0000000000000000 is loosing it
Merci d'avance
Partager