64,652
社区成员
发帖
与我相关
我的任务
分享
// project -> settings->general->microsoft foundation classes 中选中use mfc as shared dll
#include <afxmt.h>// for cevent
#include <afxwin.h> // for messagebox
CEvent g_event;
// 系统会创建一个新的线程执行HandlerRoutine
BOOL WINAPI HandlerRoutine(DWORD dwCtrlType)
{
BOOL bRet = FALSE;
switch (dwCtrlType)
{
case CTRL_C_EVENT:
MessageBox(NULL,
L"CTRL+C received!",L"CEvent",MB_OK);
break;
case CTRL_BREAK_EVENT:
MessageBox(NULL,
L"CTRL+BREAK received!",L"CEvent",MB_OK);
break;
case CTRL_CLOSE_EVENT:
MessageBox(NULL,
L"Program being closed!",L"CEvent",MB_OK);
break;
case CTRL_LOGOFF_EVENT:
MessageBox(NULL,
L"User is logging off!",L"CEvent",MB_OK);
break;
case CTRL_SHUTDOWN_EVENT:
MessageBox(NULL,
L"User is logging off!",L"CEvent",MB_OK);
break;
default:
MessageBox(NULL,
L"该命令不详...",L"CEvent",MB_OK);
bRet = FALSE;;
}
return bRet;
}
void main()
{
VERIFY(0 != SetConsoleCtrlHandler(HandlerRoutine,TRUE) );
WaitForSingleObject(g_event.m_hObject,INFINITE);//等待系统注销、关机消息
SetConsoleCtrlHandler(HandlerRoutine,FALSE);
}