#include<iostream>
#include<windows.h>
Using namespace std;
Int main()
{
MSG Msg;
While(GetMessage (&Msg,NULL,0,0)){
TranslateMessage(&Msg);
DispatchMessage(&Msg);
}
return 0;
}
答案 0 :(得分:1)
您可以使用代码标记(括号)将代码放在格式化的框中。
因此,在main函数中,MSG Msg;
启动一个名为Msg。
下一行While(GetMessage (&Msg,NULL,0,0)){
是一个while循环,它将重复块内的所有代码,同时为true。在这种情况下,这意味着只要在调用线程的消息队列中有消息,块内的代码就会重复。该函数的参数意味着输出定向到先前启动的Msg对象,NULL意味着将为线程中的任何窗口检索消息。最后两个参数用于过滤,但由于它们都是0,这意味着将检索所有消息(无过滤器)。
TranslateMessage函数TranslateMessage(&Msg);
用于将键盘输入转换为消息。如果转换了消息,则将其添加到线程队列中。
DispatchMessage函数DispatchMessage(&Msg);
执行消息的实际处理,并用于向相关函数发送消息。
所有这一切的目的本质上是一个消息队列来捕获和处理事件/输入,并在必要时在windows / theads之间进行通信。