永发信息网

!while循环的条件怎么是这样的GetMessage(&Msg,NULL,0,0)什么意思?

答案:3  悬赏:30  手机版
解决时间 2021-03-01 19:01
  • 提问者网友:温旧梦泪无声
  • 2021-02-28 22:43
!while循环的条件怎么是这样的GetMessage(&Msg,NULL,0,0)什么意思?
最佳答案
  • 五星知识达人网友:上分大魔王
  • 2021-03-01 00:18
BOOL GetMessage(LPMSG lpMsg,HWND hWnd,UINT wMsgFilterMin,UINT wMsgFilterMax )

参数:   lpMsg:指向MSG结构的指针,该结构从线程的消息队列里接收消息信息。   hWnd:取得其消息的窗口的句柄。这是一个有特殊含义的值(NULL)。GetMessage为任何属于调用线程的窗口检索消息,线程消息通过PostThreadMessage寄送给调用线程。   wMsgFilterMin:指定被检索的最小消息值的整数。   wMsgFilterMax:指定被检索的最大消息值的整数。
返回值:如果函数取得WM_QUIT之外的其他消息,返回非零值。如果函数取得WM_QUIT消息,返回值是零。如果出现了错误,返回值是-1。例如,当hWnd是无效的窗口句柄或lpMsg是无效的指针时。若想获得更多的错误信息,请调用GetLastError函数
所以while 循环没错误
有消息的时候 先转换成字符消息 然后再分发出去
全部回答
  • 1楼网友:长青诗
  • 2021-03-01 01:18
while循环就是先判断()括号里面的表达式是否为真 真的话执行{}中的语句
在你说的这个例子里面 判断的就是GetMessage()函数的返回值是否为真 真的话就执行下面的语句
  • 2楼网友:像个废品
  • 2021-03-01 00:33
这段程序其实是一个捕获消息并对消息进行相应处理的循环,GetMessage(&Msg,NULL,0,0)负责捕获消息,第1个参数Msg是所捕获的消息,第2个参数是窗口句柄,取为NULL表示捕获所有窗口的消息,后两个参数是消息的最高和最低优先级。GetMessage如果捕获消息,返回非零值,while循环则对该消息进行转换,然后放到消息队列中。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯