Une variable de type fenetre ce n'est pas clair ?
Version imprimable
Une variable de type fenetre ce n'est pas clair ?
Ben non ce n'est pas clair, il n'y a pas de type "fenêtre", et on ne peut pas savoir ce que ça représente dans ta tête.
Si on recopie une variable de type fenêtre, c'est censé faire quoi pour toi?
Et si on recopie une variable de type HWND?
Je ne pose pas la question pour une variable de type CWnd, puisqu'elle n'est pas copiable.
Salut,
Il existe aussi les pointeurs de fonctions, utiles pour selectionner une fonction au choix en fonction du traitement demandé, des types de paramètres, etc..
Je pensais que ça serait utile de le préciser, tant qu'on parle des pointeurs ;)
A+
On peut aisément définir un type fenetre en C et quand à ce que cela représente il me semble que le nom est lui même autoinformant non ?Citation:
Envoyé par Médinoc
Struct MaFenetre {hauteur,largeur} ;
Un passage de paramètre par valeur entraîne le clonage de ce paramètre sur la pile.Notamment les champs hauteur et largeur de la structure MaFenetre.Citation:
Envoyé par Médinoc
Je ne vois pas pourquoi tu parles de HWND ? 8O C'est spécifique à windows non ?Citation:
Envoyé par Médinoc
Je ne vois aucun probléme à recopier un HWND...
Tiens, tu vois donc que c'est ambigu:
Pour moi, un type fenêtre, ça représente une fenêtre à l'écran.
Ton type fenêtre, ce n'est rien d'autre qu'une structure "Dimensions".
Donc, voilà, à appeler fenêtre n'importe quoi, on s'emmêle les pinceaux.
Ton type, c'est juste "Une structure".
PS: Je parlais de HWND, car l'API de fenêtrage de Windows est la seule que je maîtrise.
Évidemment, quand on copie un HWND, on a deux HWND égaux qui désignent la même fenêtre.
Mais avec un type "Fenêtre" inconnu, on aurait pu s'attendre à n'importe quoi, y compris une duplication de la fenêtre à l'écran :aie:
[Mode=Pourriture du thread]Citation:
1-Pour moi, un type fenêtre, ça représente une fenêtre à l'écran.
2-Ton type fenêtre, ce n'est rien d'autre qu'une structure "Dimensions".
3-Donc, voilà, à appeler fenêtre n'importe quoi, on s'emmêle les pinceaux.
4-Ton type, c'est juste "Une structure".
1-Oui un type fenetre ca représente une fenetre tant qu'a faire pour qu'elle soit utile autant qu'elle soit à l'ecran non ? :aie:
2-Mon type fenetre représente une fenetre.
3-Si la notion de fenetre n'est pas claire pour toi j'en suis désolé.
4-En effet je me vois utiliser un type primitif pour décrire une fenetre :aie:
[Mode=clos]
[On continue ?]
1-Si ta structure est bien une fenêtre à l'écran, tu n'as toujours pas dit ce qui doit arriver quand on la copie :aie:
Enfin sérieusement, tu as amené le type "fenêtre" comme un cheveu sur la soupe sans le définir (structure).
Et puis, la notion de fenêtre apportait des caractèristiques supplémentaires (i.e., l'écran) qui étaient inutiles pour dire simplement "Si on passe une structure par valeur, elle est entièrement recopiée et ça prend du temps".
Le probléme est que tu t'es perdu tout seul en parlant de fenetre windows et de HWND alors que le terme se veut général d'ou le fait que tu sois maintenant dans la confusion.Citation:
Envoyé par Médinoc
Pour éclaircir ce que je voulais dire traduit en code se sera peut être plus parlant bien qu'il s'agit la de notion de base :
1 cas : recopie sur la pile des champs de la structure fenetre soit largeur + hauteur = 2 *sizeof(int) = 8 octet pour un int codé sur 4 octet. (merci de ne pas rentrer dans les détails de l'implémentation de la pile sinon on s'en sort pas :aie: )Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14 Typedef Struct MaFenetre {int largeur,int hauteur}; <...> MaFenetre Fen_ParValeur. Fen_ParValeur.largeur=200 Fen_ParValeur.hauteur=500 Ouvre(Fen_parValeur); MaFenetre Fen_ParAdresse. Fen_ParAdresse.largeur=200 Fen_ParAdresse.hauteur=500 Ouvre(&Fen_ParAdresse);
2 cas : recopie sur la pile de l'adresse de la fenetre soit la taille d'un pointeur = 4 octet en général.
L'exemple d'une fenetre,avec un peu d'imagination,est plutot flagrant sur le gain apporté.
Tu devrais prendre en compte le contexte dans lequel le terme a été utilisé.Citation:
Envoyé par Médinoc
- J'aurais parlé d'autres types de fenêtre si je les connaissais, et ça n'aurait rien changé.
- Ton code parle bien de copie de structure. Tu aurais appelé ta structure Arachide avec deux champs cacahuete1 et cacahuete2, ça aurait été strictement la même chose.
- Justement, le contexte ne justifiait pas l'emploi spécifique d'une fenêtre (ou d'une Arachide) au lieu du terme générique de structure.
La fenêtre a trop de charge sur ses "épaules" par rapport à une simple structure de données.
Edit: Corrigé pour KiLVaiDeN.
Rectification importante, qui peut porter à confusion : Un arachide contient des graines qu'on appelle cacahuète, donc une cacahuète ne contient pas de graine !!
Prenez-en de la graine ( de champion ? ) et vive les structures passées en pointeurs copié depuis le disque dur clé usb maxtor :aie:
Comment passer de l'utilité des pointeurs à la définition d'une fenetre :aie: