WindowProc pour ListView

Signaler
Messages postés
415
Date d'inscription
samedi 4 janvier 2003
Statut
Membre
Dernière intervention
2 décembre 2005
-
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
-
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

Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
20
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++
Messages postés
415
Date d'inscription
samedi 4 janvier 2003
Statut
Membre
Dernière intervention
2 décembre 2005
1
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
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
20
tu es certain que hListView existe déjà dans WM_CREATE ?

ciao...
BruNews, MVP VC++
Messages postés
415
Date d'inscription
samedi 4 janvier 2003
Statut
Membre
Dernière intervention
2 décembre 2005
1
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
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
20
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++