windows programming

Started by
5 comments, last by Ahmet 17 years, 12 months ago
I am a newbie in game programing and ask you a quesstion about creating a window. Windows use WndProc( HWND hWnd , UINT msg ,WPARAM wParam, LPARAM lParam) function to handle windows' messages which has below structure typedef struct tagMSG { HWND hwnd; UINT message; WPARAM wParam; LPARAM lParam; DWORD time; POINT pt; } MSG; msg structure already has the window handle , wParam and lParam . Why we have to resend the hWnd , wParam and lParam parameters?WndProc can't be satisfied with a single msg parameter?Same thing is valid for DefWindowProc() . thanks for all help :)
Advertisement
The WndProc doesn't actually get the MSG variable, it just gets a few members of it. I'd like to know why WnyProc doesn't just get passed the MSG that's getting handled in the message loop, actually...

EDIT: Oh, I think that's what you're saying... never mind then [smile]
Quote:Original post by Ahmet
Why we have to resend the hWnd , wParam and lParam parameters?WndProc can't be satisfied with a single msg parameter?Same thing is valid for DefWindowProc() .
thanks for all help :)



You don't.
You don't send the msg struct to wndproc.
The 'UINT msg' parameter in WndProc is the message, e.g. WM_PAINT.
Look on MSDN if you want more information.
ofcourse cenix but if we send the WM_PAINT we have already sent lParam..
WM_PAINT is sent as a UINT, which is just an integer. The message also needs the lParam to be passed to the window proc with it.
Rewrite to make things more obvious:
WndProc( HWND hwnd, UINT message ,WPARAM wParam, LPARAM lParam)

Compare to
typedef struct tagMSG {  HWND hwnd;  UINT message;  WPARAM wParam;  LPARAM lParam;  DWORD time;  POINT pt;} MSG;

Your high level code gets the MSG structure from GetMessage or PeekMessage, and DispatchMessage feeds WndProc with the hwnd, the message and the params.

HTH,
Thanks all , especially Emmanuel Deloget , you are the best :)

This topic is closed to new replies.

Advertisement