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 :

[API]Application MDI


Sujet :

MFC

  1. #1
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2005
    Messages
    513
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 513
    Points : 416
    Points
    416
    Par défaut [API]Application MDI
    Bonjour a tous,
    voila, je voudrais modifié l'interface d'une application pour en faire une interface de type MDI. Seulement, je ne sais pas du tout comment faire une interface de ce type.
    J'ai donc commencé par chercher un peu sur le net. Mais impossible de trouver un exemple simple de comment faire une interface MDI. J'ai trouvé deux exemples qui étaient pas mal, mais ils étaient déjà trop complexe, pour que je puisse bien comprendre comment faire l'interface.
    C'est pour cela que je demande de l'aide, pour savoir si vous pouviez m'indiquer un tutorial, ou une source simple pour que je puisse comprendre comment réaliser une interface MDI.
    Voila, merci par avance.
    Bob
    Jérémy
    Ingénieur Conception et Développement

  2. #2
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2005
    Messages
    513
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 513
    Points : 416
    Points
    416
    Par défaut
    bon apres plusieurs tentative j'ai fait ca comme code:

    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
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    LRESULT CALLBACK ChildProc(HWND hWnd, UINT mes, WPARAM wParam, LPARAM lParam)
    {
    	switch(mes)
    	{
    		case WM_CREATE:
    			CreateWindowEx(WS_EX_CLIENTEDGE, "EDIT", "", WS_CHILD|WS_VSCROLL|ES_MULTILINE|WS_VISIBLE|ES_AUTOVSCROLL|ES_WANTRETURN, 0, 0, 0, 0, hWnd, NULL, hInst, NULL);
    			ShowWindow(hWnd, SW_SHOWNORMAL);
    			SetFocus(hWnd);
    			return TRUE;
     
    		default:
    			return DefWindowProc(hWnd, mes, wParam, lParam);
    	}
    }
     
    // fonction de la fenetre
    LRESULT CALLBACK MainProc(HWND hWnd, UINT mes, WPARAM wParam, LPARAM lParam)
    {
    	switch(mes)
    	{
    		// creation de la fenetre
    		case WM_CREATE:
    			// configuration fils
    			CLIENTCREATESTRUCT ccs;
    			ccs.hWindowMenu = NULL;
    			ccs.idFirstChild = 200;
    			clientHwnd = CreateWindowEx(0, "MDICLIENT", NULL, WS_CHILD|WS_CLIPCHILDREN|WS_VISIBLE|WS_HSCROLL|WS_VSCROLL, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, hWnd, (HMENU)NULL, hInst, (void*)&ccs);
     
    			// definition classe du fils
    			WNDCLASSEX clientWnd;
    			clientWnd.cbClsExtra = 0;
    			clientWnd.cbSize = sizeof(WNDCLASSEX);
    			clientWnd.cbWndExtra = 0;
    			clientWnd.hbrBackground = GetSysColorBrush(COLOR_BACKGROUND);
    			clientWnd.hCursor = LoadCursor(NULL, IDC_ARROW);
    			clientWnd.hIcon = LoadIcon(NULL, IDI_APPLICATION);
    			clientWnd.hIconSm = clientWnd.hIcon;
    			clientWnd.hInstance = hInst;
    			clientWnd.lpfnWndProc = ChildProc;
    			clientWnd.lpszClassName = "Editor";
    			clientWnd.lpszMenuName = NULL;
    			clientWnd.style = CS_DBLCLKS|CS_PARENTDC;
    			RegisterClassEx(&clientWnd);
    			return TRUE;
     
    		// demande de fermeture application
    		case WM_CLOSE:
    			if(MessageBox(hWnd, "Etes-vous sur de vouloir quitter ?", "Quitter ?", MB_ICONINFORMATION|MB_YESNO) == IDYES)
    				PostQuitMessage(0);
    			return 0;
     
    		// selection item
    		case WM_COMMAND:
    		{
    			switch(wParam)
    			{
    				// Quitter
    				case ID_MAIN_QUITTER:
    					// demande confirmation
    					if(MessageBox(hWnd, "Etes-vous sur de vouloir quitter le programme ?", "Quitter ?", MB_ICONINFORMATION|MB_YESNO) == IDYES)
                            PostQuitMessage(0); // fin du programme
    					return TRUE;
     
    				// ancien prog
    				case ID_MAIN_OPEN:
    					DialogBox(hInst, MAKEINTRESOURCE(IDD_MAIN), hWnd, OpenProc);
    					return TRUE;
     
    				// menu "A propos"
    				case ID_MAIN_INFO:
    					DialogBox(hInst, MAKEINTRESOURCE(IDD_INFO), hWnd, NULL);
    					return TRUE;
     
    				// nouveau projet
    				case ID_MAIN_NEW:
    					if(!CreateMDIWindow("Editor", "Untitled*", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, clientHwnd, hInst, NULL))
    						MessageBox(hWnd, "Erreur", "Erreur", MB_OK);
    					return TRUE;
    			}
    		}
     
    		default:
    			return DefWindowProc(hWnd, mes, wParam, lParam);
    	}
    }
     
    // fonction WinMain (point d'entrée du programme)
    int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
    {
    	// definition variable
    	WNDCLASSEX fenetre; // class de notre fenetre
    	HWND f_hWnd; // HWND de la fenetre
    	MSG msg; // variable de message
     
    	hInst = hInstance; // hinstance
     
    	// definition de notre class fenetre
    	fenetre.cbSize = sizeof(WNDCLASSEX);
    	fenetre.style = CS_HREDRAW | CS_VREDRAW;
    	fenetre.lpfnWndProc = MainProc;
    	fenetre.cbClsExtra = 0;
    	fenetre.cbWndExtra = 0;
    	fenetre.hInstance = hInstance;
    	fenetre.hIcon = LoadIcon(NULL, IDI_APPLICATION);
    	fenetre.hCursor = LoadCursor(NULL, IDC_ARROW);
    	fenetre.hbrBackground = reinterpret_cast<HBRUSH>(COLOR_WINDOW+2);
    	fenetre.lpszMenuName = MAKEINTRESOURCE(IDR_MENU);
    	fenetre.lpszClassName = "std";
    	fenetre.hIconSm = LoadIcon(NULL, IDI_APPLICATION);
    	RegisterClassEx(&fenetre); // enregistrement de la class
     
    	// creation de la fenetre
    	f_hWnd = CreateWindowEx(WS_EX_CLIENTEDGE, "std", "AccessGen", WS_OVERLAPPEDWINDOW, 0, 0, 800, 600, NULL, NULL, hInstance, NULL);
    	ShowWindow(f_hWnd, SW_SHOW);
     
    	SetFocus(f_hWnd); // donne focus
     
    	// reception des messages
    	while(GetMessage(&msg, NULL, 0, 0) == TRUE)
    	{
    		TranslateMessage(&msg);
    		DispatchMessage(&msg);
    	}
     
    	return 0; // fin app
    }
    l'application marche bien, quand je vais dans le menu et que je fais nouveau pour créé une fenetre enfant, la fenetre est bien créé mais je ne la voie pas. je ne comprend pas trop pourquoi?
    Pourriez-vous m'aider svp?
    Merci par avance
    Bob
    Jérémy
    Ingénieur Conception et Développement

Discussions similaires

  1. Fenetre de connexion à une application MDI
    Par sessime dans le forum EDI
    Réponses: 5
    Dernier message: 26/09/2005, 22h42
  2. [aide] cherche tutoriel application MDI
    Par Bilouzzz dans le forum MFC
    Réponses: 1
    Dernier message: 19/09/2005, 17h03
  3. Réponses: 4
    Dernier message: 14/02/2005, 19h41
  4. Fiche Login avec une application MDI
    Par Andry dans le forum Composants VCL
    Réponses: 6
    Dernier message: 13/09/2004, 11h46

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