经历之前几个步骤,视窗就会出现在显示器上。接下来视窗就需要对我们得一些操作来进行相应的响应,通过以下代码来实现相关的功能:
//从操作系统的消息队列中不断的捡取消息(讯息回圈)
while (::GetMessage(&msg, NULL, 0, 0)) {
::TranslateMessage(&msg); //软键盘转化消息
::DispatchMessage(&msg);//将消息发送到窗体中
}
GetMessage函数,其作用是从调用线程的消息队列中检索消息。该函数分派传入的已发送消息,直到已发布的消息可供检索为止。
BOOL GetMessage(
LPMSG lpMsg,//MSG指针
HWND hWnd,//视窗句柄
UINT wMsgFilterMin,
UINT wMsgFilterMax
);
第一个参数lpMsg为一个指向MSG结构的指针,该结构从线程的消息队列接收消息信息。
第二个参数hWnd为所要获取消息的视窗句柄。该窗口必须属于当前线程。
第三个wMsgFilterMin和第四个参数wMsgFilterMax分别为检索最低消息的整数值与最高消息的整数值。
在例程中,第二、第三 和第四个参数设定为 NULL 或者 0,表示程式接收它自己建立的所有视窗的所有讯息。
它的返回值为BOOL类型如果函数检索到WM_QUIT以外的消息,则返回值为非零。若检索WM_QUIT消息,则返回值为零。
接下来对于MSG结构进行一个说明,MSG的结构如下所示
typedef struct tagMSG {
HWND hwnd;
UINT message;
WPARAM wParam;
LPARAM lParam;
DWORD time;
POINT pt;
DWORD lPrivate;

最低0.47元/天 解锁文章
1222

被折叠的 条评论
为什么被折叠?



