Toon posts:

[win32 mdi] waarom werkt dit niet?

Pagina: 1
Acties:
  • 51 views sinds 30-01-2008

Verwijderd

Topicstarter
#include <windows.h>

#define IDM_FIRSTCHILD 50000

LRESULT CALLBACK WndProc( HWND hWnd, UINT messg, WPARAM wParam, LPARAM lParam );
LRESULT CALLBACK child_proc( HWND window, UINT message, WPARAM wparam, LPARAM lparam );

HINSTANCE instance;

HWND frame_window;
HWND client_window;
HWND child_window;

char szProgName[] = "Hello Win32";
char client_name[] = "boe";
char child_name[] = "bleh";

int WINAPI WinMain( HINSTANCE hInst, HINSTANCE hPreInst, LPSTR lpszCmdLine, int nCmdShow )
{

MSG lpMsg;
WNDCLASSEX wc;

instance = hInst;

wc.cbSize = sizeof(WNDCLASSEX);
wc.lpszClassName = szProgName;
wc.hInstance = hInst;
wc.lpfnWndProc = WndProc;
wc.hCursor = LoadCursor( NULL, IDC_ARROW );
wc.hIcon = LoadIcon( NULL, IDI_APPLICATION );
wc.hIconSm = LoadIcon( NULL, IDI_APPLICATION );
wc.lpszMenuName = NULL;
wc.hbrBackground = GetStockObject( WHITE_BRUSH );
wc.style = CS_HREDRAW | CS_VREDRAW;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;

RegisterClassEx( &wc );

wc.lpfnWndProc = child_proc;
wc.cbWndExtra = sizeof( HANDLE );
wc.lpszClassName = child_name;
wc.hbrBackground = (HBRUSH)( BLACK_BRUSH );

RegisterClassEx( &wc );

frame_window = CreateWindow( szProgName,
"CodeWarrior Win32 stationery",
WS_OVERLAPPEDWINDOW | WS_CLIPCHILDREN,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
(HWND)NULL,
(HMENU)NULL,
instance,
(LPSTR)NULL );

ShowWindow(frame_window, nCmdShow );
UpdateWindow( frame_window );

while( GetMessage( &lpMsg, NULL, 0, 0 ) )
{
if (!TranslateMDISysAccel( client_window, &lpMsg))
{
TranslateMessage( &lpMsg );
DispatchMessage( &lpMsg );
}
}
return( lpMsg.wParam);
}


LRESULT CALLBACK WndProc( HWND hWnd, UINT messg, WPARAM wParam, LPARAM lParam )
{
switch(messg)
{
case WM_CREATE:
{
MDICREATESTRUCT mdi;
CLIENTCREATESTRUCT ccs;

ccs.hWindowMenu = NULL;
ccs.idFirstChild = IDM_FIRSTCHILD;

client_window = CreateWindowEx(WS_EX_CLIENTEDGE, "mdiclient",
NULL,
WS_CHILD | WS_CLIPCHILDREN | WS_VISIBLE,
0,
0,
0,
0,
hWnd,
NULL,
instance,
(LPVOID)&ccs );

ShowWindow( client_window, SW_SHOW );
SetParent( client_window, frame_window );

mdi.szClass = child_name;
mdi.szTitle = "test";
mdi.hOwner = instance;
mdi.x = 0;
mdi.y = 0;
mdi.cx = 300;
mdi.cy = 300;
mdi.style = MDIS_ALLCHILDSTYLES;
mdi.lParam = 0;

child_window = (HWND)SendMessage( client_window,
WM_MDICREATE,
0,
(LONG)&mdi );
break;
}
case WM_DESTROY:
PostQuitMessage( 0 );
break;
}

return( DefFrameProc( hWnd, client_window, messg, wParam, lParam ) );
}

LRESULT CALLBACK child_proc( HWND window, UINT message, WPARAM wparam, LPARAM lparam )
{
switch( message )
{
case WM_CREATE:
child_window = CreateWindowEx( WS_EX_TOOLWINDOW,
child_name,
NULL,
WS_CHILD | WS_VISIBLE,
0,0,100,100,
client_window,
NULL,
instance,
NULL);

break;


}

return DefMDIChildProc( window, message, wparam, lparam );
}


ik wil dus een child-toolwindow maken maar ergens zit dus wat fout maar ik weet niet waar

[ Voor 4% gewijzigd door Verwijderd op 19-02-2003 12:59 ]


  • whoami
  • Registratie: December 2000
  • Laatst online: 16:37
Hoi.
Ik stel voor dat je ff de P&W quickstart leest.

Wij vragen dat je zelf ook wat moeite doet bij het oplossen van een probleem en niet dat je hier zomaar je code dumpt en zegt dat het niet werkt. Je zegt zelfs nog niet eens wat er niet werkt, waar het probleem ligt, of wat je al geprobeerd hebt.
Wat wil je dan dat wij doen? Dit is gewoon een 'ziehier m'n code, fix het voor me'-topic. Daar doen we echter niet aan mee. Het is hier geen McDrive afhaaldienst.

https://fgheysels.github.io/


  • whoami
  • Registratie: December 2000
  • Laatst online: 16:37
Ziehier de Quickstart:
Welkom in P&W -> Quickstart (update 2/10/2002)

Ik zie net dat je nieuw bent op GoT. Welkom dus. ;) (Al lijkt dit misschien geen goed begin, of een gemeende welkom, zo direct een slotje. ;) )
Maar goed, ik stel voor dat je m'n sluitpost ff goed doorleest, dat je ff de FAQ en de Quickstart leest. Dan zul je weten wat voor eisen we hier stellen aan een topic.... P&W is gewoon geen forum waar we je toelaten om je code te dumpen en dan maar verwachten dat ze hier voor jou gefixed wordt.

[ Voor 67% gewijzigd door whoami op 19-02-2003 13:02 ]

https://fgheysels.github.io/


Dit topic is gesloten.