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

  FORUM HardWare.fr
  Programmation
  C++

  [VC++6] Quand initialiser les positions de mes objets?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[VC++6] Quand initialiser les positions de mes objets?

n°622144
Yoyo@
Posté le 26-01-2004 à 18:32:47  profilanswer
 

Salut!
 
J'ai une question simple :  
 
Mon appli (Single Document) se contente de créer un document, et des objets associés (disons des cercles), dont je voudrais pouvoir initialiser les positions, mais une fois seulement que je connais la taille avec laquelle la fenêtre de ma CView va s'ouvrir!
 
A quel moment puis-je donc obtenir cette taille et lancer mon initilisation (appelons cette initialisation : pDoc->InitPos();)
 
Je précise que je tiens à exécuter cette initilisation une seule fois seulement, au début!
 
pour l'instant, la seule méthode que j'ai trouvé est d'utiliser le OnSize de ma View, comme ceci :
 

Code :
  1. CFromToCallsDoc* pDoc;
  2. CView::OnSize(nType, cx, cy);
  3. // TODO: Add your message handler code here
  4. pDoc = GetDocument();
  5. if (!pDoc->alreadyInitialized)
  6.    pDoc->InitPos();


 
Le problème avec celà est que je suis obligé de maintenir un booléen dans mon document, indiquant si celui ci a déja été initialisé.
 
Y a t il une autre solution plus élégante?

mood
Publicité
Posté le 26-01-2004 à 18:32:47  profilanswer
 

n°622148
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 26-01-2004 à 18:34:35  profilanswer
 

Ben pourquoi t'initialises pas tes positions dans le constructeur de ta CView ?


---------------
J'ai un string dans l'array (Paris Hilton)
n°622151
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 26-01-2004 à 18:37:44  profilanswer
 

Bon laisse tomber le constructeur, ça marchera pas dans ton cas. Passe plutot par la méthode OnCreate(), ou mieux, OnInitialUpdate()


---------------
J'ai un string dans l'array (Paris Hilton)
n°622178
Yoyo@
Posté le 26-01-2004 à 19:08:02  profilanswer
 

Exact, dans le constructeur, ça ne marchera pas, car au moment où elle est construite, la View ne sait pas combien elle va mesurer.
 
Concernant les OnCreate et les InitialUpdate, elles ne sont appelées qu'une fois? Et lorsqu'elles sont appelées, la View est déja dimensionnée? (je peux donc obtenir la taille de la partie cliente?)

n°629870
Yoyo@
Posté le 03-02-2004 à 16:19:08  profilanswer
 

Me revoilà!
 
En fait, je viens de me rendre compte que quand on fait un GetClientRect lors de l'appelle à CView::OnInitialUpdate(), cette méthode renvoie les dimensions de la fenêtre complète, barre de titre comprise, donc, je ne peux pas placer avec beaucoup de rigueur mes objets graphiques, qui seront visibles à l'écran alors que la barre de titre sera là!
 
(autrement dit, dans mon cas, mon CRect a un Bottom de 544 lors de l'InitialUpdate alors qu'il a ensuite un Bottom de 502 tout le long...)
 
normal?

n°632300
Yoyo@
Posté le 05-02-2004 à 15:44:16  profilanswer
 

Bon, puisque personne ne saura me dire pourquoilors de l'appell du InitialUpdate() de ma view, la zone client est chez moi un petit peu plus grande (544 pixels de haut) que lors des appels standard de OnDraw() qui se font plus tard (502 pixels de haut), je vais poser une autre question :  
 
Lors d'une appli SDI sous Visual C++ 6, comment faire poure redimensionner ou plutot dimensionner la fenetre principale avant qu'elle ne s'affihe?


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

  [VC++6] Quand initialiser les positions de mes objets?

 

Sujets relatifs
Stress sur un TreeSet ! objets non equals removés[C++] Nom des variables et des objets (Notation Hongroise)
[FlashMX] Scroller des objets/textes/clipslibrairies et objets standards
[VB.NET]l'application n'a pas réussi à s'initialiser correctementBouton a 3 positions : probleme sous mozilla
[Java] Persistance des objets"Impossible d'initialiser le moteur de base de données DAO/Jet"
[ActionScript]Création dynamique d'objetsApplication.Terminate et libération mémoire / objets
Plus de sujets relatifs à : [VC++6] Quand initialiser les positions de mes objets?


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