Redimmensionement d'une fenêtre

cs_stockley81 Messages postés 24 Date d'inscription lundi 21 avril 2003 Statut Membre Dernière intervention 24 août 2005 - 15 janv. 2004 à 10:53
cs_stockley81 Messages postés 24 Date d'inscription lundi 21 avril 2003 Statut Membre Dernière intervention 24 août 2005 - 16 janv. 2004 à 09:45
Je vais essayer d'exposer mon problème le plus clairement possible.

J'ai une application graphique à réaliser pour le boulot mais c'est un peu spécifique puisque je travaille sur un projet développé par une société (Nextest). Je m'explique:
Nextest développe un testeur de composants électroniques et a créé des fonctions propres pour être utilisés dans des programme de tests.
Sous visual C++, j'ai donc créé un projet de type Nextest (pas win32 ou mfc par exemple). J'ai créé mon interface graphique en ajoutant des ressources puis je gère l'affichage de mes courbes avec la librairie graphapp.
Le problème est que lors d'un redimensionnement de la fenêtre les graphs sont effacés car je ne les redessine pas. En effet je n'arrive pas à détecter le redimensionnement d'une fenêtre.

Pour résumer je cherche à trouver comment savoir quand ma fenêtre est redimmensionné et ensuite faire les opérations nécessaires comme le ré-affichage des graphs par exemple.

D'avance merci pour toute aide éventuelle.

7 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
15 janv. 2004 à 12:11
Tu n'as pas acces a la wndproc de la fenetre ?
Il faudrait intercepter WM_SIZE, pour forcer l'affichage appeler InvalidateRect ou UpdateWindow qui poussera WM_PAINT sur le haut de la file des messages.
BruNews, ciao...
0
cs_stockley81 Messages postés 24 Date d'inscription lundi 21 avril 2003 Statut Membre Dernière intervention 24 août 2005
15 janv. 2004 à 13:09
Non je n'ai absolument pas accès à la wndproc de la fenêtre. C'est bien là le problème. J'avais vu ce que l'on pouvait faire avec ça mais je ne peux pas l'appliquer.

Si t'as une autre idée je suis preneur.
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
15 janv. 2004 à 13:54
et avec GetWindowLong tu peux pas récupérer la wndproc?
0
garslouche Messages postés 583 Date d'inscription mardi 26 novembre 2002 Statut Membre Dernière intervention 29 mai 2015 1
15 janv. 2004 à 14:45
Si c'est du MFC c'est normal que tu n'ai pas accès à la wndproc
Il faut soit utiliser le wizzard pour intercepter WM_PAINT, soit le faire à la main et là il vaut mieux jeter un coup d'oeil à MSDN et reagarde ON_WM_PAINT()

On ne force pas une curiosité, on l'éveille.
.................................................Daniel Pennac
0

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

Posez votre question
cs_stockley81 Messages postés 24 Date d'inscription lundi 21 avril 2003 Statut Membre Dernière intervention 24 août 2005
15 janv. 2004 à 17:09
J'ai le handle de ma fenêtre (HWND). J'ai vu ta fonction GetWindowLong qui permet de récupérer la wndproc. Mais est-ce possible alors que j'en ai pas définie ???? A aucun moment dans mon code j'ai défini cette procédure donc peut elle être retrouvée ????
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
15 janv. 2004 à 17:17
Au fait pour quelle raison n'as tu pas acces à la wndproc?
0
cs_stockley81 Messages postés 24 Date d'inscription lundi 21 avril 2003 Statut Membre Dernière intervention 24 août 2005
16 janv. 2004 à 09:45
En fait à aucun moment dans mon code je ne définie une fonction wndproc, je n'utilise pas de winmain non plus.

J'utilise des macros toutes faites (c un peu bizarre pour certains trucs d'ailleurs) et j'ai une macro qui lance mon application (TOOL_BEGIN_BLOCK(TryBegin)), une pour définir ma boite de dialogue (DIALOG{})....

Donc j'avoue que je ne sais pas si je peux récupérer a fonction wndproc...
0
Rejoignez-nous