1.方法1

1.1. 直接在代码中添加

// 弹出消息窗口自动关闭,需要指出的是,Windows 2000的user32.dll没有导出这个函数。
extern "C"
{int WINAPI MessageBoxTimeoutA(IN HWND hWnd, IN LPCSTR lpText, IN LPCSTR lpCaption, IN UINT uType, IN WORD wLanguageId, IN DWORD dwMilliseconds);int WINAPI MessageBoxTimeoutW(IN HWND hWnd, IN LPCWSTR lpText, IN LPCWSTR lpCaption, IN UINT uType, IN WORD wLanguageId, IN DWORD dwMilliseconds);
};
#ifdef UNICODE
#define MessageBoxTimeout MessageBoxTimeoutW
#else
#define MessageBoxTimeout MessageBoxTimeoutA
#endif

1.2. 调用

    MessageBoxTimeout(this->GetSafeHwnd(), _T("弹出5秒后会自动关闭!这是一个模态对话框。"), _T("会自动关闭的MessageBox"),  MB_ICONINFORMATION, GetSystemDefaultLangID(), 5000);//参数说明:父窗口的句柄为NULL的情况下,将弹出非模态对话框;延时关闭的时间为0的情况下,弹出的MessageBox需要手动关闭MessageBoxTimeout(NULL, _T("弹出5秒后会自动关闭!这是一个非模态对话框。"), _T("会自动关闭的MessageBox"),  MB_ICONINFORMATION, GetSystemDefaultLangID(), 5000);

参考网址:http://blog.sina.com.cn/s/blog_4b0f3b420100mglb.html

win7 x86,vs2013,测试通过

2.方法2

2.1.此api是微软的一个未公开api,在user32.dll中,功能就是弹出一个对话框MessageBox,并定时自动退出。 
下面为头文件,随便取个名字,我取的是MsgBoxTimeout.h 。

#include <windows.h>
#include <tchar.h>//Functions & other definitions required-->
typedef int (__stdcall *MSGBOXAAPI)(IN HWND hWnd, IN LPCSTR lpText, IN LPCSTR lpCaption, IN UINT uType, IN WORD wLanguageId, IN DWORD dwMilliseconds);
typedef int (__stdcall *MSGBOXWAPI)(IN HWND hWnd, IN LPCWSTR lpText, IN LPCWSTR lpCaption, IN UINT uType, IN WORD wLanguageId, IN DWORD dwMilliseconds);int MessageBoxTimeoutA(IN HWND hWnd, IN LPCSTR lpText, IN LPCSTR lpCaption, IN UINT uType, IN WORD wLanguageId, IN DWORD dwMilliseconds);
int MessageBoxTimeoutW(IN HWND hWnd, IN LPCWSTR lpText, IN LPCWSTR lpCaption, IN UINT uType, IN WORD wLanguageId, IN DWORD dwMilliseconds);#ifdef UNICODE#define MessageBoxTimeout MessageBoxTimeoutW
#else#define MessageBoxTimeout MessageBoxTimeoutA
#endif #define MB_TIMEDOUT 32000int MessageBoxTimeoutA(HWND hWnd, LPCSTR lpText, LPCSTR lpCaption, UINT uType, WORD wLanguageId, DWORD dwMilliseconds)
{static MSGBOXAAPI MsgBoxTOA = NULL;if (!MsgBoxTOA){HMODULE hUser32 = GetModuleHandle(_T("user32.dll"));if (hUser32){MsgBoxTOA = (MSGBOXAAPI)GetProcAddress(hUser32, "MessageBoxTimeoutA");//fall through to 'if (MsgBoxTOA)...'}else{//stuff happened, add code to handle it here //(possibly just call MessageBox())return 0;}}if (MsgBoxTOA){return MsgBoxTOA(hWnd, lpText, lpCaption, uType, wLanguageId, dwMilliseconds);}return 0;
}int MessageBoxTimeoutW(HWND hWnd, LPCWSTR lpText, LPCWSTR lpCaption, UINT uType, WORD wLanguageId, DWORD dwMilliseconds)
{static MSGBOXWAPI MsgBoxTOW = NULL;if (!MsgBoxTOW){HMODULE hUser32 = GetModuleHandle(_T("user32.dll"));if (hUser32){MsgBoxTOW = (MSGBOXWAPI)GetProcAddress(hUser32, "MessageBoxTimeoutW");//fall through to 'if (MsgBoxTOW)...'}else{//stuff happened, add code to handle it here //(possibly just call MessageBox())return 0;}}if (MsgBoxTOW){return MsgBoxTOW(hWnd, lpText, lpCaption, uType, wLanguageId, dwMilliseconds);}return 0;
}
//End required definitions <--

2.2. 调用方式

#include "MsgBoxTimeout.h"
void CTestDlg::OnBnClickedButton2()
{//you must load user32.dll before calling the functionHMODULE hUser32 = LoadLibrary(_T("user32.dll"));if (hUser32){int iRet = 0;UINT uiFlags = MB_OK | MB_SETFOREGROUND | MB_SYSTEMMODAL | MB_ICONINFORMATION;iRet = MessageBoxTimeout(NULL, _T("Test a timeout of 2 seconds."),_T("MessageBoxTimeout Test"), uiFlags, 0, 2000);//iRet will = 1uiFlags = MB_YESNO | MB_SETFOREGROUND | MB_SYSTEMMODAL | MB_ICONINFORMATION;iRet = MessageBoxTimeout(NULL, _T("Test a timeout of 5 seconds."),_T("MessageBoxTimeout Test"), uiFlags, 0, 5000);//iRet will = MB_TIMEDOUT if no buttons pressed, button values otherwise//only unload user32.dll when you have no further need //for the MessageBoxTimeout functionFreeLibrary(hUser32);}
}

参考网址:http://blog.csdn.net/a379039233/article/details/49445207

关于弹出消息窗口的自动关闭相关推荐

  1. 个推透传消息设置通知栏展示 ios_手机通知栏消息太多,这招教你关闭弹出消息,立刻清爽...

    我们平常在使用华为手机的时候,后台运行的应用会不断的推送消息.我们过一段时间就要清理一下通知栏,一天下来甚至要弄个几十次,搞得人心里是烦不胜烦!不知道你有没有这样的烦恼,小编这就带你从根本上解决问题, ...

  2. pyqt5子窗口跳出主窗口_弹出式窗口与 可用性,转换和跳出率

    pyqt5子窗口跳出主窗口 Written by Cassandra Naji 由卡珊德拉·纳吉 ( Cassandra Naji)撰写 They go by many names - modal w ...

  3. ZH奶酪:Ionic中(弹出式窗口)的$ionicModal使用方法

    Ionic中[弹出式窗口]有两种(如下图所示),$ionicModal和$ionicPopup; $ionicModal是完整的页面: $ionicPopup是(Dialog)对话框样式的,直接用Ja ...

  4. html生成小窗口,用JS制作9种弹出小窗口(HTML)

    进入许多网站时,有弹出式小窗口,它们五花八门,使我们捉摸不透下面就来介绍用JS制作9种制作弹出小窗口: 1.最基本的弹出窗口代码 其实代码非常简单: window.open ("page.h ...

  5. JS设置弹出小窗口。

    经常上网的朋友可能会到过这样一些网站,一进入首页立刻会弹出一个窗口,或者按一个连接或按钮弹出,通常在这个窗口里会显示一些注意事项.版权信息.警告.欢迎光顾之类的话或者作者想要特别提示的信息.其实制作这 ...

  6. vb html ie弹出窗口,VB6 统制IE弹出模式窗口

    VB6 控制IE弹出模式窗口 最近一个小项目,开发一个插件,需要对一个第三方系统的网页内容进行操作.操作的内容还比较复杂.自然选择用BHO做. 做到一半卡住了,原因在于这个网站有一个showmodal ...

  7. 使用pyqt弹出消息提示框

    使用pyqt弹出消息提示框 安装 pyqt 安装遇到问题 `No matching distribution found for PyQt5-Qt5>=5.15.2 (from pyqt5)` ...

  8. [转贴]去除迅雷广告和弹出广告窗口

    清除默认配置状态弹出的广告: 1.在主界面点击"工具"-"配置",在"配置"窗口左边选择"高级"选项卡,把右边" ...

  9. layui弹出层之layer.open弹出iframe窗口·

    layui弹出层之layer.open弹出iframe窗口· layer.open弹出iframe窗口 [1]该功能为案例,弹出iframe窗口显示上传数据 由于layui的弹出层每次执行layer. ...

最新文章

  1. About The FTP
  2. 3DSlicer13:Command Line Interface(CLI)
  3. EntityFramework附加实体
  4. x86服务器当虚拟化的存储,X86服务器虚拟化实施方案.doc
  5. python查询字符串是否包含某字符串_python 判断检测字符串中是否包含指定字符或字符串(比如:?)...
  6. 今天来聊聊 Redis 的主从复制
  7. 【elasticsearch系列】windows安装IK分词器插件
  8. 沾化区php学校,推进校地合作 助力产教融合:滨州市技术学院与沾化经济开发区举行签约仪式...
  9. 书籍之 Head First HTML与CSS
  10. ds18b20 c语言程序,ds18b20.c
  11. 服务器系统日志应怎么查看,怎么查看服务器操作系统日志
  12. RPA案例 | 电商使用超自动化平台提升运营精细化
  13. html手机号显示错误,手机号码被错误标记有救了 联通开通了查询清除服务
  14. OpenGL PowerVR SDK 编译:Could NOT find X11 (missing: X11_X11_INCLUDE_PATH X11_X11_LIB)
  15. 使用lettuce和redisTemplate操作redis cluster踩坑日记
  16. 怎样取消隐式推送_iPhone XS ios12系统隐式推送开启后怎么关闭
  17. php获得opcode,php opcode 缓存
  18. python用电度数设计_用Python实现一个爬取XX大学电费通知的小脚本
  19. cgb2008-京淘day04
  20. git lfs官网翻译

热门文章

  1. self_drive car_学习笔记--第8课:定位算法
  2. java古诗_java--补全诗句代码
  3. 天空飘彩带的css3代码_纯CSS3实现飘逸洒脱带有飞行效果的三级下拉菜单
  4. Elastic Search:(二)分词器
  5. 51-Jenkins-Periodic Backup插件实现Jenkins备份
  6. 黑马程序员——网络编程
  7. 铁甲雄心机器人冠军_《铁甲雄心》第二季首播 优必选科技引领中国AI机器人进击之路...
  8. SqlDataReader转换为DataTable
  9. C++ RegSetValueEx返回值始终为5
  10. Python 网络爬虫实战:猫眼电影 38950 条评论数据告诉你《无名之辈》是否值得一看?