最近工作中,遇到需要在某中状态下,弹出弹框,手动退出或一段时间后自动退出的需求。
原理是:添加了个定时器,时间一到,获取弹框窗口句柄,然后发个关闭消息
总觉得不完美,若有更好的解决方案,请多多指点!
void CALLBACK TestTimer(HWND hWnd,UINT nMsg,UINT nTimerid,DWORD dwTime)
{
HANDLE hwd=FindWindowExA(NULL,NULL,NULL,"提示");//找到窗口句柄,
if(hwd)
::SendMessage((HWND)hwd,WM_CLOSE,NULL,NULL);
}
void print_info(string mesg)
{
SetTimer(NULL,1,5000,TestTimer);
MessageBoxA(0,mesg.c_str(),"提示",MB_SETFOREGROUND);
KillTimer(NULL,1);
}
void warning_info(string mesg)
{
boost::thread(boost::bind(print_info,mesg));
}