Création de fenêtres MDI

Création de fenêtres MDI - C++ - Programmation

Marsh Posté le 08-08-2002 à 17:20:07    

Bonjour  
 
je créé une application MDI à l'aide de la VCL de C++ Builder 6  
avec une fenêtre principale ( TFormPrincipal ) et des fenêtres filles (TFormChild ) qui affichent des images.  
Tout se passe bien qd j'en reste là  
mais voilà je dois aussi pouvoir afficher des fenêtres filles différentes  
créées à partir de l'API 32.  
 
Donc pour cela je créer ma classe de fenêtre fille et la registre :  
 
WNDCLASS wndclass;  
 
wndclass.style =CS_HREDRAW|CS_VREDRAW|CS_OWNDC;  
wndclass.lpfnWndProc =DocWndProc;  
wndclass.cbClsExtra =0;  
wndclass.cbWndExtra =sizeof(WND*); // Pointer to extra parameters  
wndclass.hInstance =HInstance;  
wndclass.hIcon =NULL;  
wndclass.hCursor =LoadCursor(apps->hRes,(LPCSTR)"Doc_cursor" );  
wndclass.hbrBackground =CreateSolidBrush(GetSysColor(COLOR_WINDOW));  
wndclass.lpszMenuName =NULL;  
wndclass.lpszClassName ="childWin2";  
RegisterClass(&wndclass);  
 
l'enregistrement se fait comme il faut  
donc ensuite j'essaye de créeer une fenêtre fille du nouveau type  
de la manière suivante :  
 
MDICREATESTRUCT mc;  
mc.szClass="childWin2";mc.szTitle=(LPCSTR)"une fenêtre fille ";  
mc.hOwner=HInstance;mc.x=mc.y=mc.cx=mc.cy= CW_USEDEFAULT;  
mc.style=WS_HSCROLL|WS_VSCROLL;mc.lParam=0;  
hwnd=(HWND)SendMessage(apps->hCwnd,WM_MDICREATE,0,(LPARAM)(LPMDICREATESTRUCT)&mc) ;  
 
 
où apps->HCwnd = FormPrincipal()->ClientHandle ; // handle sur la zone client MDI  
 
normalement tout devrait marché comme il faut  
mais voilà l'affichage de l'image contenu dans ma fenêtre  
se fait sans aucun pb mais la fenêtre elle est fondue ( collée ) au  
background et de plus le cadre la fenêtre fille n'apparaît pas.  
 
 
Si qq un pouvais m'aider je lui en serais éternellemnt reconnaissant  
merci d'avance  
a+

Reply

Marsh Posté le 08-08-2002 à 17:20:07   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed