[vc++][api]fenetre mdi sans mfc !!!

Soyez le premier à donner votre avis sur cette source.

Vue 5 073 fois - Téléchargée 386 fois

Description

voila, premiere fois que j'y arrive mais voila elle y est !!!

Source / Exemple :


#include <windows.h>
#include <stdio.h>
#include <stdlib.h>

static char g_szClassName[] = "MyWindowClass";
static char mychild[] = "child";
static HINSTANCE g_hInst = NULL;

#define IDM_CHILD 1001

HWND hwndMDIClient;

LRESULT CALLBACK ChildProc(HWND hwndChild, UINT Message, WPARAM wParam, LPARAM lParam)
{
     switch(Message)
     {

	 case WM_PAINT:
		 {
		 PAINTSTRUCT ps;
		 HDC hdc;
		 hdc = BeginPaint(hwndChild,&ps);
		 TextOut(hdc,0,0,"Coucou !",8);
		 EndPaint(hwndChild,&ps);
		 }
		 break;
		        case WM_CLOSE:
                 DestroyWindow(hwndChild);
            break;
            case WM_DESTROY:
                 PostQuitMessage(0);
            break;
            default:
                 return DefWindowProc(hwndChild, Message, wParam, lParam);
     }
     return 0;
}

LRESULT CALLBACK WndProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam)
{
     switch(Message)
     {

		 case WM_CREATE: 
    { 
              hwndMDIClient = 
			CreateWindowEx(
            WS_EX_CLIENTEDGE | WS_EX_MDICHILD,
            mychild,
            "je suis ta fille !",
            WS_OVERLAPPEDWINDOW | WS_CLIPSIBLINGS | WS_CHILD ,
            CW_USEDEFAULT, CW_USEDEFAULT, 640, 480,
            hwnd, NULL, g_hInst, NULL);

			   
			  			
        ShowWindow(hwndMDIClient, SW_SHOW); 
		UpdateWindow(hwnd);
    } 
    break; 
		 
/*            case WM_COMMAND:
                 switch(LOWORD(wParam))
                 {

                 }
            break;*/
            case WM_CLOSE:
                 DestroyWindow(hwnd);
            break;
            case WM_DESTROY:
                 PostQuitMessage(0);
            break;
            default:
                 return DefWindowProc(hwnd, Message, wParam, lParam);
     }
     return 0;
}

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
     LPSTR lpCmdLine, int nCmdShow)
{
     WNDCLASSEX WndClass;
     HWND hwnd;
     MSG msg;

     g_hInst = hInstance;

     WndClass.cbSize                = sizeof(WNDCLASSEX);
     WndClass.style              = 0;
     WndClass.lpfnWndProc    = WndProc;
     WndClass.cbClsExtra        = 0;
     WndClass.cbWndExtra        = 0;
     WndClass.hInstance      = g_hInst;
     WndClass.hIcon              = LoadIcon(NULL, IDI_APPLICATION);
     WndClass.hCursor            = LoadCursor(NULL, IDC_ARROW);
     WndClass.hbrBackground = (HBRUSH)(COLOR_WINDOW);
     WndClass.lpszMenuName  = "MAINMENU";
     WndClass.lpszClassName = g_szClassName;
     WndClass.hIconSm            = LoadIcon(NULL, IDI_APPLICATION);

 if(!RegisterClassEx(&WndClass))
     {
            return 0;
     }

	 WndClass.lpfnWndProc   = (WNDPROC) ChildProc; 
     WndClass.hIcon         = NULL;
     WndClass.lpszMenuName  = (LPCTSTR) NULL; 
     WndClass.cbWndExtra    = 0; 
	 WndClass.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
     WndClass.lpszClassName = mychild; 

     if(!RegisterClassEx(&WndClass))
     {
            return 0;
     }

     hwnd = CreateWindowEx(
            WS_EX_CLIENTEDGE,
            g_szClassName,
            "Je suis la mère !",
            WS_OVERLAPPEDWINDOW | WS_CLIPSIBLINGS ,
            CW_USEDEFAULT, CW_USEDEFAULT, 800, 600,
            NULL, NULL, g_hInst, NULL);
			

     if(hwnd == NULL)
     {
            return 0;
     }

   
	
	     ShowWindow(hwnd, SW_SHOW);
     UpdateWindow(hwnd);

	

   while (GetMessage(&msg, (HWND) NULL, 0, 0)) { 
    if (!TranslateMDISysAccel(hwndMDIClient, &msg))
	{ 
        TranslateMessage(&msg); 
        DispatchMessage(&msg); 
    } 
} 

}

Conclusion :


si quelqu'un arrive a faire ca avec des ressources.... je suis preneur !!

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

cs_neobugs
Messages postés
3
Date d'inscription
mardi 27 avril 2004
Statut
Membre
Dernière intervention
20 mars 2006
-
hum bonjour cela fais longtemps qui'il n'a pas eu de réponse à cette source, dont j'éprouve le même probleme, qu'arrive-t-il avec cette source, y'a-t-il eu une solution???
GreatNeo
Messages postés
13
Date d'inscription
mercredi 18 décembre 2002
Statut
Membre
Dernière intervention
23 avril 2007
-
Ok merci, c'est sympa. Tu me tiens au courant dès que tu as trouvé. Merci d'avance.
cs_Xs
Messages postés
368
Date d'inscription
mercredi 14 novembre 2001
Statut
Membre
Dernière intervention
1 septembre 2008
-
je te l'avoue, je ne le sais pas. ca fais assez longtemps que je l'ai fait... je vais voir.
GreatNeo
Messages postés
13
Date d'inscription
mercredi 18 décembre 2002
Statut
Membre
Dernière intervention
23 avril 2007
-
Ce programme fonctionne sous Windows 98 mais pas sous Windows 2000. La fenêtre fille n'apparait pas sous Win2K. Quelles en sont les causes ?

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.