Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1390 connectés 

  FORUM HardWare.fr
  Programmation

  [VC++]pb de fenetre et de dessin .....

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[VC++]pb de fenetre et de dessin .....

n°63155
koulip31
Posté le 04-10-2001 à 13:22:01  profilanswer
 

voila je cree ma fenetre mere ...(celle ou ya pas de resource lui corespondant a part un menu :( )
 
par le biaiz de ce menu jouvre des dialoguebox toute mimi qui me calculent des choses ...... ce que je voudrais c'est de represneter dans la fenetre mere sous forme de grafique mes resultat de calcul de ma dialogue box..  
 
le hic c'est ke le WM_PAINT s'execute au chargement de la page ou quand on touche a la fenetre .. moi je veux que ca dessine  
-en temps reel dans ma fenetre mère
-a partir de ma fenetre fille
-le tout en direct live dans le fenetre mere
 
donc  
1)comment passer des info d'une fenetre fille a une fenetre mere
ou dessiner dans la fenetre mere a partir de la fille (en mettant le hwnd de ma fenetre mere en global ca doit passer)
 
2)comment dessiner en temps reel (surtout ca)
 
question subsidiaire:
comment assigner un .res a ma fenetre mere a fin de mettre des boutons et autres avec .

mood
Publicité
Posté le 04-10-2001 à 13:22:01  profilanswer
 

n°63158
Carbon_14
Posté le 04-10-2001 à 13:35:41  profilanswer
 

N'y connaissant pas grand chose (DDE, OLE ne sont pour moi que des acronymes), j'utilise les messages.
De ma feuille fille (ou mère vers la fille), je fais un PostMessage() (ou SendMessage() si on veut attendre que l'action soit terminée avant de continuer) avec le hWnd du destinataire et en prenant un message "user" WM_USER + x. x peut aller de 0 à je sais plus combien  :D (255, 32000 ?).
 
Si dans la feuille destinatrice (et/ou les deux), on prévoit un case (WM_USER + x): . Une fois qu'on a fait une liste des x et de leurs actions, ça fonctionne comme si c'était un message du système. On passe les paramètres soit par lParam et wParam, soit par variable globale.

n°63166
koulip31
Posté le 04-10-2001 à 14:07:57  profilanswer
 

en gros si jai bien compris
 
dans ma fenetre mere je met
 
case WM_USER 1:
toto();
return (TRUE);
 
et dan ma fenetre fille
 
....
Psotmessage(Hwnd de ma fenerte mere, WM_USER 1)
....
 
quand jexecuterrais ma fenetre mere il skipperas la fonction toto()mais lexecuterras kan j'executerrais ma fen fille :p
 
si c'est bien ca :bounce:

n°63168
koulip31
Posté le 04-10-2001 à 14:09:16  profilanswer
 

mais a part par une globalle je ne peux envoiller de param a ma fontion toto..  :(

n°63183
H4dd3R
Q2
Posté le 04-10-2001 à 14:42:50  profilanswer
 

Tu n´as qu´à définir tes dialogues filles comme membres de ta classe fenêtre mère..
 
Du coup tu as accès aux paramêtres!! :)


---------------
Athlon64 s754 10*200MHz - R9800Pro - 512MB DDR200MHz - ZX6RR - Q2[SupOp] - Tutorial Video: multilangues, multisstitres
n°63187
koulip31
Posté le 04-10-2001 à 14:50:50  profilanswer
 

mais comme je bosse sur du code ki nest pas de moi les gus precedant on tout dvp en C mais un C crade de chez crade .... donc a pas de class fenetre mere mais une fonction fenetre mere completement  :spookie:  et vla la misere ...  
 
et comme jai opas envie de recoder env 100 000 lignes :( vais etre obligé de passer par des globales (beurkkkkkk une 36em de +) ... a moin ke

n°63196
El_gringo
Posté le 04-10-2001 à 15:27:40  profilanswer
 

à moins que ...j'arrive ! :sol:  
 
Bon, sérieusement, g un truc qui peut être t'aider. G pas vraiement pris le temps de lire ton problème, mais j'pense que mon truc peut t'aider:
 
en fait, au lieu d'utiliser des variables globales, saches que tu peux attribuer un long à chaque fenêtre. Je m'explique: pour tout ce qui est "Fenêtre" (CWnd en MFC, ou simple fenêtre avec un Handle en API), tu peux associer un long quelconque (qui pourrais par exemple être un pointeur vers le Handle de ta fenêtre mère ou autre)
 
pour ça, tu regardes la doc sur la fonction SetWindowLong et GetWindowLong, avec le paramètre index à GWL_USERDATA.
 
Voila, je vais pas non plus trop m'étaler la dessus, vu que je suis même pas sur que ça te sois utile ! :D

n°63199
Carbon_14
Posté le 04-10-2001 à 15:32:13  profilanswer
 

Ne pas oublier le + entre WM_USER et le nombre.
 
dans la fenetre mere
 
case WM_USER + 1:
toto();
return (TRUE);
 
et dans ma fenetre fille
 
....
VarGlob1 = ...;
VarGlob2 = ...;
VarGlob3 = ..;
Postmessage(Hwnd de ma fenetre mere, WM_USER + 1, (WPARAM)0, 0L);
....
 
S'il y a que deux ou trois valeurs ENTIERES, on peut les envoyer via LPARAM et WPARAM (LPARAM permet de passer deux int combinés pour faire un long), sinon, ça doit être faisable mais je m'y connais pas assez (on peut passer un pointeur sur un tableau)).
 
Si la feuille mère doit télécommander la feuille fille, on peut faire de même. Faut faire une liste avant pour séparer les actions, et pas se "mélanger"  :D.
 
J'utilise cette méthode "archaïque" pour avoir des sessions monotâches de mes applications en faisant envoyer les coordonnées (avec plusieurs WM_USER + ) et l'état de la feuille suicidée à la nouvelle pour qu'elle s'affiche au même endroit. Ai rien trouvé de "mieux"  :pt1cable: .

n°63203
El_gringo
Posté le 04-10-2001 à 15:39:32  profilanswer
 

...ma méthode est plus simple ... non !? :)

n°63204
El_gringo
Posté le 04-10-2001 à 15:40:34  profilanswer
 

Et, vous avez vu ce topic !?  :D  
 
http://forum.hardware.fr/forum2.ph [...] &owntopic=
 
interressant, non ? :D

mood
Publicité
Posté le 04-10-2001 à 15:40:34  profilanswer
 

n°63205
koulip31
Posté le 04-10-2001 à 15:42:26  profilanswer
 

je garde un oeil sur le topic et vais apliquer tout ca si ca marche meme si c'est crade sa se verrat po :lol: care le code au point ou il en est  :( je lais propé mais bon ca suffit po les gars ki sont passé avant moi ettaient nullllll en progggg... (pas capable de faire kke chose de propre)  :cry:  :cry:  :cry: et moi jai pas d'autre choix que de continuer dans la lignée  :cry:  :cry:  mais bon ya vous tous sur le forum hfr  :hot:  :hot:  heureusement ke vous etes la  :jap:

n°63206
El_gringo
Posté le 04-10-2001 à 15:45:37  profilanswer
 

...et personne est là pour moi !? :sweat:

n°63211
koulip31
Posté le 04-10-2001 à 15:57:59  profilanswer
 

et pour assigner un .res a ma fenetre principale comment faut faitre ca apres ca roule car japelle des dialoguebox donc le .res et en param a la fonction.  
 
sinon le truc de carbon_14 ne marche po a 1er vue mais a dut faire une connerie de mon cote donc vais chercher d'ou ca viens

n°63212
El_gringo
Posté le 04-10-2001 à 16:00:05  profilanswer
 

Mon SetWindowLong, ça marche et c plus simple !

n°63217
koulip31
Posté le 04-10-2001 à 16:06:06  profilanswer
 

vais essayer de ce pas :) mais la metode de carbon mavais lair plus simple du moin a comprendre ;)

n°63219
Carbon_14
Posté le 04-10-2001 à 16:07:46  profilanswer
 

Quand on est bon, ça doit être difficile de programmer "crad". :D  
 
Pour le problème C++, j'ai pas encore eu le temps de m'y mettre (au C++), donc suis avant-débutant (!).

n°63221
koulip31
Posté le 04-10-2001 à 16:08:55  profilanswer
 

:lol:  :lol:  
les msdn VC++
 
--------------------------------------
CWindow::SetWindowLong
 
LONG SetWindowLong(int,LONG);
 
See Set WindowLong in the Win32 SDK
--------------------------------------
 
cool lexplication  :lol:  :lol:

n°63223
koulip31
Posté le 04-10-2001 à 16:10:48  profilanswer
 

je ne suis pas bon... mais un code propre c'est si bien  
jai deja vue de codes de 15 000 lignes non comentés super comprehensible car super structuré contrairement a la bouze ke je suis en train de retappé .... (commente dans tout les sens car immonde et abject)

n°63225
Carbon_14
Posté le 04-10-2001 à 16:13:09  profilanswer
 

Le SetWindowLong permet de gérer les infos extra-fenêtre associées. On y pense rarement (j'ai découvert que ça existe depuis qq temps). Faut voir comment gérer les évènements pour prévenir la feuille d'agir.
 
Faut essayer les différentes voies, sur petit exemple pour comparer. Ca permet peut-être d'en voir les limitations.

n°63227
El_gringo
Posté le 04-10-2001 à 16:16:19  profilanswer
 

CARBON_14 a écrit a écrit :

Le SetWindowLong permet de gérer les infos extra-fenêtre associées. On y pense rarement (j'ai découvert que ça existe depuis qq temps). Faut voir comment gérer les évènements pour prévenir la feuille d'agir.
 
Faut essayer les différentes voies, sur petit exemple pour comparer. Ca permet peut-être d'en voir les limitations.  




 
Moi aussi g découvert y a pas longtemps, et je trouve ça bien pratique !

 

[edtdd]--Message édité par El_Gringo--[/edtdd]


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  [VC++]pb de fenetre et de dessin .....

 

Sujets relatifs
[???] pour nouvelle fenetre a la fermetureintegrer une video en html avec le controlpanel et la fenêtre video
Commandes basiques en VB (fermer la fenetre etc...)Comment fermer une fenetre dos dans un fichier .bat
Ouverture d'une fenetre avec passage d'un message (PHP+JS)[visual c++]est ce que quelqu'un sait comment appeler une fenetre
[javascript] fenetre sans bouton agrandir/reduireOuverture de fenetre avec parametre sans window.open()
C++ SOUS BEOS : FENETRE TRANSPARENTEfermeture d'une fenetre window.opener.close() marche mais...
Plus de sujets relatifs à : [VC++]pb de fenetre et de dessin .....


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR