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

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

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.