控制台程序隐藏显示
#pragma comment( linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"" )
创建新线程
HANDLE CreateThread(
LPSECURITY_ATTRIBUTES lpThreadAttributes,
SIZE_T dwStackSize,
LPTHREAD_START_ROUTINE lpStartAddress,
__drv_aliasesMem LPVOID lpParameter,
DWORD dwCreationFlags,
LPDWORD lpThreadId
);
example:
DWORD WINAPI threadBody(_In_ LPVOID lpParameter) {
//do sth
}
CreateThread(NULL, 0, threadBody, NULL, 0, 0);
定时器
example:
void CALLBACK TimerProc(HWND hWnd, UINT nMsg, UINT nTimerid, DWORD dwTime) {
printf("I am executed every 100ms "));
}
timerID = SetTimer(NULL, 1, 100, TimerProc);
while (GetMessage(&msg, NULL, 0, 0))
{
if (msg.message == WM_TIMER)
{
//TranslateMessage(&msg); //消息处理
DispatchMessage(&msg);//消息派遣
}
}
多媒体定时器
eg:
#include "mmsystem.h" //head file
#pragma comment(lib,"winmm") //lib file
void PASCAL OneMilliSecondProc(UINT wTimerID, UINT msg, DWORD dwUser, DWORD dwl, DWORD dw2) {
//doSth;
}
//100ms周期调用OneMilliSecondProc函数
if (timeSetEvent(100, 1, (LPTIMECALLBACK)OneMilliSecondProc, (DWORD)0, TIME_PERIODIC) == 0){
printf("定时器启动错误\n");
}
else{
printf("定时器启动成功\n");
}
VS中折叠C++代码
#pragma region
#pragma endregion