mogwai93
Messages postés362Date d'inscriptionmardi 31 décembre 2002StatutMembreDernière intervention 4 novembre 2023
-
6 nov. 2010 à 18:26
mogwai93
Messages postés362Date d'inscriptionmardi 31 décembre 2002StatutMembreDernière intervention 4 novembre 2023
-
12 nov. 2010 à 11:50
Bonjour
J'ai une fenetre redimensionnable avec scroll vertical.
je voudrais que le scroll se positionne automatiquement sur le widget qui a le focus (de manière à ce que le widget ayant le focus soit toujours dans la fenetre visible)
mogwai93
Messages postés362Date d'inscriptionmardi 31 décembre 2002StatutMembreDernière intervention 4 novembre 2023 7 nov. 2010 à 21:19
je viens déjà de trouver "un problème" :
tous mes widgets ont la propriété WS_TABSTOP
et j'ai surclassé les widgets afin de gérer VK_TAB
sauf que je n'avais pas vu que lorsque l'on arrivait dans VK_TAB, on était déjà sur le widget suivant sans que ce dernier n'ait encore le focus
(je croyais être encore sur le widget qui avait le focus lors de l'appui sur la touche TAB)
sinon j'utilise
GetWindowRect sur le widget et sur la fenetre mere afin de connaitre la nouvelle position à scroller
puis GetScrollInfo, SetScrollPos, ScrollWindow
je penche pour un problème de calcul pour le scroll dans ScrollWindow
(je ne dois pas être loin car l'option "defilement ici" fonctionne,
il faut seulement que je simule cette option)
racpp
Messages postés1909Date d'inscriptionvendredi 18 juin 2004StatutModérateurDernière intervention14 novembre 201417 9 nov. 2010 à 23:35
Salut,
Je pense qu'il serait préférable, dans la procédure de sous-classement de tes contrôles, de traiter WM_SETFOCUS au lieu de WM_KEYDOWN ou WM_KEYUP que tu sembles utiliser pour intercepter l'appui sur la touche de tabulation VK_TAB. Une fois WM_SETFOCUS intercepté, tu peux envoyer un message personnalisé à la procédure de la fenêtre mère afin d'y gérer le scroll. Ensuite, tu retournes à la procédure par défaut du contrôle afin de ne pas altérer son comportement normal concernant le message WM_SETFOCUS.