plantage du senddlgitemmessage(..) [API C++] - C++ - Programmation
Marsh Posté le 11-05-2006 à 11:57:58
Trouvé !!
Le problème venait de la perte du focus apparement, en effet la listbox est crée avec l'option LBS_OWNERDRAWEDFIXED, cette option utilisé avec le code suivant :
Code :
|
Permettant de changer le code de couleur. Ceci étant appelé a chaque affichage (et donc apres chaque reinitialisation de la liste)
Le fait de cliquer sur la list box faisait perdre le focus, ce qui apparement l'empechait de remplir correctement la variable info provoquant ainsi une erreur de segmentation ( ).
Donc pour résoudre le problème j'ai ajouté l'instruction SetFocus(hwnd) avant chaque appel du SendDlgItemMessage.
Voilou
Marsh Posté le 11-05-2006 à 11:14:25
Bonjour à tous,
J'ai réalisé un programme sous DEV C++ 4.9.9.2
Celui ci est composé d'une fenetre principale (IDR_MAIN) et de 3 sous-fenetre ; un treeview, une listbox, et un champ edit créés de la manière suivante :
Le principe du prog est le suivant : il recherche le terme tapé dans le champs Edit dans unfichier text et affiche les lignes contenant ce terme dans la list box. le treeview permettant de sélectionner certaines lignes. Chaque clic sur le treeview lance un :
afin de reinitialiser la listbox.
tout se passe passe bien sauf que si je clique sur la list box puis directement sur le champs treeview ca plante (avec le message d'erreur windows qui propose d'envoyer l'erreur a microsoft etc).
Toutes les autres succession de clic possibles marchent bien.
Si je ne lance pas le message d'effacement cela ne plante pas.
Quelqu'un a t il une idée ?
Merci.