大家好,又见面了,我是你们的朋友全栈君。
if (GetMessage(&msg, NULL, 0, 0)) {
TranslateMessage(&msg); //消息转化
DispatchMessage(&msg); //消息派遣. 把TranslateMessage转换的消息发送到窗口的消息处理函数,此函数在窗口注册时已经指定
}
执行过程:
BOOL WINAPI GetMessage(
_Out_ LPMSG lpMsg,
_In_opt_ HWND hWnd,
_In_ UINT wMsgFilterMin,
_In_ UINT wMsgFilterMax
);
//BOOL TranslateMessage(CONST MSG *lpMsg);
函数原型:LONG DispatchMessage(CONST MSG*lpmsg);
#pragma comment(lib,"user32")
#include <stdio.h>
#include <time.h>
#include <sys/timeb.h>
#include <windows.h>
char datestr[16];
char timestr[16];
char mss[4];
void log(char *s) {
struct tm *now;
struct timeb tb;
ftime(&tb);
now = localtime(&tb.time);
sprintf(datestr, "%04d-%02d-%02d", now->tm_year + 1900, now->tm_mon + 1, now->tm_mday);
sprintf(timestr, "%02d:%02d:%02d", now->tm_hour, now->tm_min, now->tm_sec);
sprintf(mss, "%03d", tb.millitm);
printf("%s %s.%s %s", datestr, timestr, mss, s);
}
VOID CALLBACK myTimerProc1(
HWND hwnd, // handle of window for timer messages
UINT uMsg, // WM_TIMER message ************
UINT idEvent, // timer identifier
DWORD dwTime // current system time)
{
log("In myTimerProc1\n");
}
VOID CALLBACK myTimerProc2(
HWND hwnd, // handle of window for timer messages
UINT uMsg, // WM_TIMER message
UINT idEvent, // timer identifier
DWORD dwTime // current system time)
{
log("In myTimerProc2\n");
}
int main()
{
MSG msg;
SetTimer(NULL, 0, 4000, myTimerProc1);
SetTimer(NULL, 1, 2000, myTimerProc2);
for (int i = 0; i<20; i++)
{
Sleep(1000);
log("In main\n");
if (GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg); //消息处理
DispatchMessage(&msg); //消息派遣. 把TranslateMessage转换的消息发送到窗口的消息处理函数,此函数在窗口注册时已经指定
}
}
return 0;
}
2019-12-06 21:10:24.633 In main
2019-12-06 21:10:25.618 In myTimerProc2
2019-12-06 21:10:26.619 In main
2019-12-06 21:10:27.620 In myTimerProc1
2019-12-06 21:10:28.621 In main
2019-12-06 21:10:28.621 In myTimerProc2
2019-12-06 21:10:29.623 In main
2019-12-06 21:10:29.624 In myTimerProc2
2019-12-06 21:10:30.625 In main
2019-12-06 21:10:31.623 In myTimerProc1
2019-12-06 21:10:32.624 In main
2019-12-06 21:10:32.624 In myTimerProc2
2019-12-06 21:10:33.626 In main
2019-12-06 21:10:33.626 In myTimerProc2
2019-12-06 21:10:34.628 In main
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/129189.html原文链接:https://javaforall.cn