Bonjour,
Je vais revenir sur un sujet vu et revu. Mais cette fois si les PropertySheet et Tab sont de la partie.
Je suis actuellement en train de réaliser un outil de saisie de données. Evidemement pour accélérer la saisie, la touche Tab est top. Mais les PropertySheet foutent la merde.
Avant de commencer, il faut savoir quelques petites choses.
- Tous les contrôles sont créer en dynamique,
- Il y a aussi bien des contrôles dans les PropertyPage qu'en dehors,
- Après la création de tous les contrôles, je fais une passe pour fixer le
TabOrder. - Le PropertySheet n'a pas WS_TABSTOP mais a WS_EX_CONTROLPARENT
- Les PropertyPage ont WS_TABSTOP mais n'ont pas WS_EX_CONTROLPARENT
Maintenant passons aux problèmes. En fait, j'en ai deux.
1 - Je n'arrive pas à mettre le focus sur le premier contrôle ( un bouton ). Pourtant quand il s'agit du premier contrôle qui doit avoir le focus, je met ce code là :
pWnd->SetWindowPos ( &CWnd::wndTop, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE );
J'ai également fait attention de retourner TRUE à la fin de la fonction OnInitDialiog.
Au final le focus n'est pas sur le bouton, et pire que tout pour vérifier où est le focus, j'appuie sur Tab et là, l'onglet du premier PropertyPage prend le focus.
Mais si je met le focus sur le bouton, en cliquand dessus et que j'appuie sur Tab, le focus part bien sur le bon contrôle.
J'ai un peu tout essayer mais je suis à cours d'idée.
2 - Maintenant, le problème vient de la navigation avec les PropertySheet.
Une fois que le focus est dans une des pages du PropertySheet, le focus ne peut plus revenir sur les contrôles qui sont en dehors du PropertySheet.
J'ai cru comprendre que c'est un des gros problèmes des PropertySheet. J'aimerai donc savoir si quelqu'un a réussi à résoudre ce problème.
Merci d'avance pour votre aide
Partager