GetMessage消息循环

从消息队列里拿消息
BOOL WINAPI GetMessage{
Out LPMSG lpMsg,//一条消息的struct
In_opt HWND hWnd,//窗口句柄,设置为NULL则表示同一条线程内的所有窗口都收到消息
In UINT wMsgFilterMin,//获取消息最小值
In UINT wMsgFilterMax//获取消息最大数,和上面的一起设置为0则表示对消息数不作限制
};
返回值:
大于0:没出错也不退出的消息
等于0:退出WM_QUIT
小于0:出错

示例如下:
LPMSG msg = { 0 };
while (GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg);//将虚拟键转换成字符消息
DispatchMessage(&msg);//分发消息给系统,系统找到过程函数指针,通过指针调用过程函数,过程函数得到消息
}
关于TranslateMessage:
在键盘上敲下一个字符后
产生WM_KEYDOWN与WM_KEYUP消息
两个消息包含的参数是虚拟键代码(wParam)和扫描码(lParam)
TranslateMessage生成一条新的消息,这条消息将上面两个消息组合成一条WM_CHAR,其中wParam包含了字符的ASCII码

消息循环的流程
1.系统得到消息,投递到消息队列
2.应用使用GetMessage从消息队列拿消息
3.应用callDispatchMessage让系统知道现在要使用这条消息
4.系统把消息丢给窗口过程函数

**

然而很不幸的是,GetMessage在我游中似乎被抛弃了

**

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值