Contrôles invisibles sans redimensionnement de la fenêtre
cs_Tibabou
Messages postés129Date d'inscriptionmercredi 2 janvier 2002StatutMembreDernière intervention 7 juillet 2012
-
5 juil. 2005 à 16:04
cs_Xaviou
Messages postés154Date d'inscriptiondimanche 1 avril 2001StatutMembreDernière intervention 2 octobre 2009
-
7 juil. 2005 à 18:16
Bonjour/soir,
Je rencontre un problème très étrange: j'ai sur ma fenêtre 2 contrôles avec du 3D dedans (OpenGL) et en dessous un bouton tout bête.
Au chargement de la fenêtre, les deux contrôles OpenGL sont noirs et le bouton invisible.
Si je redimmensionne ma fenêtre, la scène 3D apparaît et le bouton s'affiche.
Une idée ?
Merci d'avance...
Tibabou
A voir également:
Contrôles invisibles sans redimensionnement de la fenêtre
cs_Tibabou
Messages postés129Date d'inscriptionmercredi 2 janvier 2002StatutMembreDernière intervention 7 juillet 2012 6 juil. 2005 à 11:42
Je l'avais en effet placé placé après la création des contrôles mais avant l'init d'OpenGL... J'ai corrigé cette erreur: maintenant la scène 3D est visible immédiatement au lancement de la fenêtre mais le bouton.... il faut redimmensionner.
cs_Xaviou
Messages postés154Date d'inscriptiondimanche 1 avril 2001StatutMembreDernière intervention 2 octobre 20091 6 juil. 2005 à 21:26
Essayes ceci:
case WM_PAINT:
PAINTSTRUCT ps1,ps2;
BeginPaint(hWndMain,&ps1); // hWndMain = Handle de la fenêtre principale
BeginPaint(hCtrl,&ps2); // hCtrl = Handle du contrôle pour l'OpenGL
EndPaint(hCtrl,&ps2);
EndPaint(hWndMain,&ps1);
Draw();
return 0;
Tu t'appercevras en plus qu'avec cette méthode, ton prog bouffera
beaucoup moins de resources systèmes (vérifies avant et après avec le
gestionnaire des tâches)
cs_Tibabou
Messages postés129Date d'inscriptionmercredi 2 janvier 2002StatutMembreDernière intervention 7 juillet 2012 7 juil. 2005 à 11:34
houla...c'est encore pire... Maintenant, il y a bien le bouton qui s'affiche au démarrage mais les contrôles OpenGL ne se rafraichissent que quand je redimmensionne la fenêtre; dès que je lache le bord de la fenêtre ou que je ne bouge plus la souris le clic enfoncé, la scène se fige.
Autre problème lié au précédent: une fois sur 2, les 2 contrôles OpenGL sont vides lors de "l'arrêt du redimmenssionnement de la fenêtre", c'est très bizarre...
Tibabou
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_Xaviou
Messages postés154Date d'inscriptiondimanche 1 avril 2001StatutMembreDernière intervention 2 octobre 20091 7 juil. 2005 à 18:16
C'est plus ou moins normal.
Avant d'utiliser l'astuce que je t'ai donné, ton prog bouclait avec le
message WM_PAINT, c'est à dire qu'il lui fallait sans cesse redessinner
la fenêtre.
Avec cette astuce, le message WM_PAINT n'est envoyé que lorsque c'est vraiment nécessaire.
Si tu veux une animation continue, ajoute un timer qui appelle ta fonction Draw(), ce sera beaucoup mieux (du moins à mon avis.)