IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MFC Discussion :

Création d'une deuxième fenêtre windows


Sujet :

MFC

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 4
    Points : 4
    Points
    4
    Par défaut [Résolu] Création d'une deuxième fenêtre windows
    Bonjour,

    J'ai cherché sur internet mais je n'ai pas trouvé plus d'information pour la création d'une deuxième fenêtre windows.

    Ce que je voudrais: A partir de ma fenêtre windows principale, je voudrai ouvrir une nouvelle fênetre vierge indépendante de la première (cette nouvelle fenetre récuperait juste des variables en globales lié à la première ), ou je pourrai effectuer des traitements differents.

    Problème : Actuellemnt le programme me génère la même fenêtre, et mes deux fenêtre sont dependantes l'une de l'autre. Pourrais-je avoir plus d'information, sur comment je dois faire pour créer une nouvelle fenetre windows independante. Je comprends pas comment generer une nouvelle fenêtre windows.

    J'ai mis quelques morceau de code, pour facilité la compréhension, enfin j'éspère.

    Si quelqu'un pouvait m'eclairer sur ma question, je lui en serait reconnaisant.

    Merci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
     
    // Variables globales :
    HINSTANCE hInst;	// instance actuelle
     
    //Main windows principale
    LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
    {
    .
    .
    .
     	case ID_G_SOLUTION_PAS:
            HWND   sol;	
            sol = CreateWindow(szWindowClass, "SOLUTION", WS_OVERLAPPEDWINDOW,CW_USEDEFAULT, 0, CW_USEDEFAULT, 0,hWnd, NULL,hInst, NULL);
     
            ShowWindow (sol,SW_SHOW) ;		// affiche la fenêtre à l'écran
            UpdateWindow (sol) ;
    .
    .
    .
    }
     
     
    //Deuxieme Fenetre windows pour afficher la solution
    LRESULT CALLBACK Soluce (HWND sol, UINT message, WPARAM wParam, LPARAM lParam)
    { 
        /////POUR LE DESSIN
    	PAINTSTRUCT ps;// attributs relatif a l'affichage de la fenetre
    	HDC hdc;// contexte de peripherique
     
        switch (message)
         {
     
           case WM_DESTROY:	// message de fermeture du programme
              PostQuitMessage (0) ;
              return 0 ;
     
           case WM_KEYDOWN:		// tape d'une touche détecter
    		 switch(wParam)
    		 {
    			case WM_KEYDOWN:
                    //test	
    				MessageBox (NULL,"Flèche gauche","Information", MB_ICONINFORMATION) ;
    				break;
    			case WM_PAINT:	
                hdc = BeginPaint(sol, &ps);
                SetBkMode(hdc, TRANSPARENT);  
    	        EndPaint(sol, &ps);
    				break;
    			default:
    				break;
    		 }
    		 break;
         }
         return DefWindowProc (sol, message, wParam, lParam) ;
    }

  2. #2
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    il faut que tu crées et enregistre une nouvelle classe, avec RegisterClass

  3. #3
    Membre éprouvé
    Avatar de Gabrielly
    Inscrit en
    Juin 2004
    Messages
    722
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 722
    Points : 1 128
    Points
    1 128
    Par défaut
    Salut,

    Dans un context MFC, il est facile de lancer une nouvelle fenêtre de niveau supérieur.
    Tu généres un projet MFC application avec VC++ .NET du genre MTI (Multiple Top-level Documents Interface) 8)

    Dans le menu "File > New Frame ", tu lances à chaque fois des fenêtres de niveau supérieur et indépendantes.

  4. #4
    Membre éprouvé
    Avatar de Gabrielly
    Inscrit en
    Juin 2004
    Messages
    722
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 722
    Points : 1 128
    Points
    1 128
    Par défaut
    Tu peux examiner le code des fonctions de CWinApp tel que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    afx_msg void OnFileNewFrame();
    afx_msg void OnFileNew();
    afin de t'inspirer pour un code pur Win32

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 4
    Points : 4
    Points
    4
    Par défaut
    Merci à vous deux pour vos réponses j'ai put solutionner mon problème grace à vous.

    Oui je savais pas que je devais crer et enregistrer une nouvelle classe, avec RegisterClass, en changeant bien sur : wcl.lpfnWndProc = WndProc;

    Je comprenais pas mon erreure, merci à vous

    Bonne soirée

  6. #6
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    résolu, c'est le bouton résolu en bas à gauche
    je le fais pour toi cette fois-ci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Création d'une deuxième fenêtre
    Par khaled87 dans le forum Qt
    Réponses: 2
    Dernier message: 12/12/2013, 11h31
  2. coment afficher un champ dans une deuxiéme fenêtre.
    Par loic20h28 dans le forum WinDev
    Réponses: 2
    Dernier message: 03/03/2008, 14h36
  3. création d'une nouvelle fenêtre
    Par Dohmaker dans le forum ASP.NET
    Réponses: 3
    Dernier message: 17/10/2007, 21h05
  4. Création d'une nouvelle fenêtre
    Par Jiyuu dans le forum Général Python
    Réponses: 6
    Dernier message: 29/06/2007, 15h50
  5. [Lazarus][Débutant] Afficher une deuxième fenêtre
    Par 'ti programmeur dans le forum Lazarus
    Réponses: 6
    Dernier message: 12/02/2007, 22h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo