problème de focus dans un CEdit
Bonjour,
J'utilise une CListBox dans laquelle j'ai inséré un champ CEdit pour éditer la 2ème colonne de chaque ligne.
Or, lorsque mon dialog (une CPropertyPage) est lancé, je n'arrive pas à obtenir le focus sur mon champ CEdit alors que je lui applique un SetFocus() dans une fonction BeginEditing() que j'ai écrite. Je dois expressément cliquer sur le champ pour obtenir ce focus. Par contre si je passe dans un autre champ et reviens ensuite sur ma grille via la fonction BeginEditing(), alors à ce moment seulement le SetFocus semble fonctionner.
Peut-être le problème est-il lié à l'initialisation de mon dialog (OnInitDialog()) et dois-je faire une opération supplémentaire.. mais où, quand et laquelle?
Merci pour vos suggestions,
Hugues.
problème de focus dans un CEdit
Le OnInitDialog est d'abord exécuté. Ensuite, j'utilise l'Event OnSetActive de la CPropertyPage pour editer mon champ qui se trouve dans ma grille et faire un SetFocus() dessus.
Merci,
Hugues.
problème de focus dans un CEdit
Avant le SetFocus sur le CEdit, c'est la CListCtrl qui a le focus (et non pas la CListBox comme je l'ai indiqué précédemment), et après, c'est bien le CEdit.
problème de focus dans un CEdit
J'avais effectivement fait un SetFocus sur la CListCtrl, pensant que cela resoudrait le problème. Depuis, je l'ai retiré mais, dans les deux cas, le problème reste le même. Cela peut-il poser un problème? :lol:
problème de focus dans un CEdit
Le CListCtrl est en effet le parent du CEdit. Je suis obligé de laisser mon SetFocus sur le CEdit sinon je n'ai jamais le focus sur mon CEdit (C'est uniquement celui qui suit le OninitDialog qui ne fonctionne pas).
problème de focus dans un CEdit
J'ai mis un PostMessage(WM_SETFOCUS) sur le CEdit dans le OnSetActive (appelé par le OnInitDialog et lors du passage d'un PropertyPage à l'autre) et j'obtiens maintenant le résulat que j'escomptais.
Merci Farscape et ... chapeau!