WindowProc pour ListView

minet03 Messages postés 415 Date d'inscription samedi 4 janvier 2003 Statut Membre Dernière intervention 2 décembre 2005 - 26 juil. 2005 à 18:10
BruNews Messages postés 21041 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 - 26 juil. 2005 à 19:31
Coucou, j'ai créer un ListView dans une fenêtre en tant que WS_CHILD,
et je définit une nouvelle WNDPROC pour ce ListView avec SetWindowLong.

Ensuite j'envoi par le biais de son HWND un message défini comme ceci dans Liste.h :

#define LVC_RESIZE 1000

et j'inclue ce fichier dans tout le fichier qui enverront les messages.

Seulement j'ai mis un petit MessageBox() dans le switch() de la WNDPROC et elle ne s'affiche pas.

Pourtant quand je l'ai mis en dehors de ce switch(), elle s'affiche.

Le CyberMonde nous offre une meilleur qualité de vie
CyberMan.inc The WebSite

5 réponses

BruNews Messages postés 21041 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 19
26 juil. 2005 à 18:17
Définis toujours tes messages perso à (WM_USER+xxx) pour éviter heurts avec messages système.
Ensuite reste à savoir comment tu le postes pour savoir où le récupérer dans ta wndProc.

ciao...
BruNews, MVP VC++
0
minet03 Messages postés 415 Date d'inscription samedi 4 janvier 2003 Statut Membre Dernière intervention 2 décembre 2005 3
26 juil. 2005 à 18:26
et bien je poste le message avec SendMessage(hListView,LVC_RESIZELIST,(WPARAM)hWnd,0); dans WM_CREATE de la MainProc();

hListView est le HWND du ListView qui est créer sans prob 2 ligne avant, hWnd est le HWND passé à la MainProc().

Le CyberMonde nous offre une meilleur qualité de vie
CyberMan.inc The WebSite
0
BruNews Messages postés 21041 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 19
26 juil. 2005 à 18:36
tu es certain que hListView existe déjà dans WM_CREATE ?

ciao...
BruNews, MVP VC++
0
minet03 Messages postés 415 Date d'inscription samedi 4 janvier 2003 Statut Membre Dernière intervention 2 décembre 2005 3
26 juil. 2005 à 19:05
case WM_CREATE:

hListView = CreateWindowEx(...);

SendMessage(hListView,LVC_RESIZELIST,(WPARAM)hWnd,0);



Cela répond à ta question ?

Le CyberMonde nous offre une meilleur qualité de vie
CyberMan.inc The WebSite
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
BruNews Messages postés 21041 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 19
26 juil. 2005 à 19:31
Si tu lui envoies le LVC_RESIZELIST après avoir changé sa lstwProc alors devrait parvenir.
Ceci dit, je procèderais autrement:
Fais par un PostMessage juste avant le return 0 de WM_CREATE de la fenêtre mère, tu assures ainsi que tout est correctement initialisé.

ciao...
BruNews, MVP VC++
0