begin process at 2012 05 28 22:50:11
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

Contrôles invisibles sans redimensionnement de la fenêtre


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Contrôles invisibles sans redimensionnement de la fenêtre

mardi 5 juillet 2005 à 16:04:31 | Contrôles invisibles sans redimensionnement de la fenêtre

Tibabou

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
mardi 5 juillet 2005 à 21:15:48 | Re : Contrôles invisibles sans redimensionnement de la fenêtre

Xaviou

As-tu pensé à faire un UpdateWindow(hWndMain) après avoir créé tes contrôles et initialisé OpenGl ?


mercredi 6 juillet 2005 à 11:42:59 | Re : Contrôles invisibles sans redimensionnement de la fenêtre

Tibabou

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.

J'ai ciblé le problème:

LRESULT CALLBACK WinProc(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam )
{
switch(uMsg)
{

case WM_CLOSE:
  PostQuitMessage(0);
  break;

case WM_SIZE:
    SizeOpenGL(400,300);
    break;

case WM_PAINT:
  Draw(); 
  break;   //
sans ce break, le bouton est visible MAIS les contrôles OpenGL sont vides...

default:
  return DefWindowProc(hwnd,uMsg,wParam,lParam);
}
return FALSE;
}

Que faire ?
Merci.

Tibabou

mercredi 6 juillet 2005 à 21:26:21 | Re : Contrôles invisibles sans redimensionnement de la fenêtre

Xaviou

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)


jeudi 7 juillet 2005 à 11:34:13 | Re : Contrôles invisibles sans redimensionnement de la fenêtre

Tibabou

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
jeudi 7 juillet 2005 à 18:16:49 | Re : Contrôles invisibles sans redimensionnement de la fenêtre

Xaviou

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.)




Cette discussion est classée dans : bouton, fenêtre, redimensionnement, contrôles, invisibles


Répondre à ce message

Sujets en rapport avec ce message

un bouton dans une fenêtre opengl [ par SmallToad ] Je voudrais savoir si quelqu'un sait un site web qui explique comment mettre des boutons dans une fenêtre opengl.Merci-------------------------SmallTo Redimensionnement CFileDialog [ par isnotgood ] Bonjour,J?utilise la class CFileDialog et je ne souhaite pas redimensionner ma fenêtre donc Je n?ai pas positionné le flag OFN_ENABLESIZING. Ceci fonc Boutons visibles et invisibles [ par arb ] BonjourDébutant en C++ (Visual C++ 6.0), j'ai posé 2 boutons sur une form. Je cherche à rendre un bouton invible en cliquant sur l'autre ou a changer dev sans MFC [ par c2millet ] Voilà j'essaie de faire un prog sans MFC et je voudrais changer la couleur de text d'un bouton ainsi que ça couleur de fond.Si qqun peu m'aider mercim redimensionnement d'une fenêtre [ par llaur76 ] Je suis entrain de developper un jeu de dame en openGL et j'aimerais savoir comment bloquer le redimensionnement de la fenetreMERCI Le C++, c'est quoi ? [ par lebarn ] Bonjour, Je suis un Visual Basic Man et j'aimerais passer au C++ mais j'aimerais d'abord savoir quelques informations avant de m'engager : - Lors de l Comment créer un Bouton [ par new0staff ] Bonjour!Le programme ci-dessous crée et affiche une fenêtre simple. Ce que je souhaite faire, c'est rajouter un Bouton à cette fenêtre.Ce qui ne joue Bloquer le redimensionnement d'une fenêtre [ par MaximeH ] Bonjour,Question stupide mais comment fait-on pour empécher l'utilisateur de redimensionner une fenêtre classique créée avec avec la fonction CreateWi Aide sur action d'un bouton dans une sous fenêtre [ par jbmartinez ] J'ai programmé sur Dev C++ un bouton avec image dans une fenêtre fille de la fenêtre principal. Aussi je ne parviens plus à récupérer le message du bo Récupérer les infos des contrôles [ par Tibabou ] Bonjour/soir,Je ne sais récupérer aucune caractéristique des contrôles que je place sur ma fenêtre. Par exemple, un simple bouton ou un champs de sais


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,468 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales