vc++ uMsg

来源:百度知道 编辑:UC知道 时间:2024/09/22 18:15:17
假定程序的消息循环
while(GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}

函数
LRESULT CALLBACK WindowsProc(
HWND hwnd, // handle to window
UINT uMsg, // message identifier
WPARAM wParam, // first message parameter
LPARAM lParam // second message parameter
)

{
switch(uMsg)
{...................}
}
中的uMsg从哪来 代表什么啊.>!!

uMsg是回调函数WindowsProc的参数,使用来标识消息的消息步。你在WinMain函数里将回调函数WindowsProc的首地址赋给窗口类WNDCLASS的对象的lpfnWndProc属性,在你已经对窗口类进行了初始化后,进入消息循环
while(GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
TranslateMessage(&msg); 将键盘消息转化,DispatchMessage(&msg);将消息传给窗口函数去处理,虽然这里没有指定窗口名,但在窗口类WNDCLASS的对象的lpfnWndProc属性里你已经指定了回调函数WindowsProc ,所以DispatchMessage(&msg);不用显示的去调用传参,窗口过程函数LRESULT CALLBACK WindowsProc也能处理

上面参数里不是有UINT uMsg 吗

LRESULT CALLBACK WindowsProc(
HWND hwnd, // handle to window
UINT uMsg, // message identifier//这里,消息号
WPARAM wParam, // first message parameter
LPARAM lParam // second message parameter
)

这是不是Win32 C代码??,GetMessage函数用来取消息,&msg是结构变量,其中的成员由系统填充,可以是鼠标点击,移动,按键或关闭等等,查一下GetMessage函数应该可以得到相关内容.