自动关闭MessageBox
BY thammadi
 
介绍
我曾看到许多这样的文章,但是都比较复杂,因此我就想我要写一个简单的一点的一个。
理解CMsgBox 类
 
     CMsgBox是一个实现了自动关闭功能的类。这个类从CWnd类继承。 它提供了一个叫做“MessageBox()”的方法,反过来这个方法调用CWnd::MessageBox()来显示消息对话框。
获得自动关闭的功能非常简单,在CMsgBox::MessageBox()方法中,调用CWnd::MessageBox API之前,我们开启一个定时器(SetTimer()方法)。在OnTimer方法中,我们尝试通过使用窗口名字(caption)查找MessageBox窗口。一旦找到,我们发送WM_CLOSE消息来关闭这个消息窗口。就是这样!
void CMsgBox::MessageBox(CString sMsg, CString sCaption, UINT nSleep,  UINT nFlags, bool bAutoClose)
{
    // Save the caption, for finding this
     // message box window later
    m_Caption = sCaption;
      // If auto close then, start the timer.
  if(bAutoClose) SetTimer(100, nSleep, NULL);
  // Show the message box
 CWnd::MessageBox(sMsg, sCaption, nFlags);
}
 
 void CMsgBox::OnTimer(UINT nIDEvent)
{
   // TODO: Add your message handler code here and/or call default
  BOOL bRetVal = false;
 // Find the message box window using the caption
  CWnd* pWnd = FindWindow(NULL, m_Caption);
  if(pWnd != NULL)
 {
    // Send close command to the message box window
   ::PostMessage(pWnd->m_hWnd, WM_CLOSE, 0, 0);
 }
 // Kill the timer
 KillTimer(100);
 CWnd::OnTimer(nIDEvent);
}
使用代码
      将“MsgBox.cpp”和“MsgBox.h”两个文件加入到你的工程中。
#include “MsgBox.h”在适当的地方
如下创建CMsgBox对象:
CMsgBox obj(this) ;
或者像这样:
CMsgBox obj; obj.SetParent(this);
使用MessageBox()方法显示消息对话框。如果你不需要自动关闭功能,设置bAutoClose参数为false。
obj.MessageBox("This message box will auto close in 2 seconds.", "Auto Close Msg Box", 2000, MB_OK | MB_ICONINFORMATION);
结 论
那很简单不是吗!这也是我第一次投递,请原谅我的错误。
参 考
delaymessagebox by Nishant Shivkumar
源码
Orignal Text

自动关闭MessageBox相关推荐

  1. java messagebox 关闭_wince/WinForm下实现一个自动关闭的MessageBox

    WinForm 下我们可以调用MessageBox.Show 来显示一个消息对话框,提示用户确认等操作.在有些应用中我们需要通过程序来自动关闭这个消息对话框而不是由用户点击确认按钮来关闭.然而.Net ...

  2. WinForm 下实现一个自动关闭的MessageBox

    WinForm 下实现一个自动关闭的MessageBox Author: eaglet WinForm 下我们可以调用MessageBox.Show 来显示一个消息对话框,提示用户确认等操作.在有些应 ...

  3. C#自动弹出窗口并定时自动关闭

    最近做个小项目,用到一个小功能:后台线程定时查询数据库,不符合条件的记录弹出消息提醒(在窗口最前面),并且过几秒钟再自动关闭弹出的窗口. 所以从网上找来资料,如下: WinForm 下实现一个自动关闭 ...

  4. winform 关于Messagebox自动定时关闭和自定义提示框总按钮上文本的问题的整理

    如果要改变Messagebox上按钮的文本和自动关闭Messagebox提示框,一种方法是自定义一个winform窗口模仿替代Messagebox,变通的实现效果,另一种方法是通过调用系统的API来实 ...

  5. MFC模拟高尔顿板实验

    先上效果图,图中小球是动态下落的,下落到对应桶里会更新相应计数. <1>建立基于单文档的应用程序,名为:GEDB. <2>为类CDEDBView添加成员函数void CGEDB ...

  6. 智能卡水表管理系统功能介绍

    智能卡水表管理系统主要是用于纯净水水卡的充值消费管理.因此,这涉及到以下问题需要解决. 第一,软件保护问题,及如何防止其他人盗用软件. 第二,IC卡相关操作函数引入问题,即如何调用IC卡等硬件设备的相 ...

  7. QT中的MessageBox设置自动关闭退出

    一.概述 由于弹出的MessageBox需要手动操作,点击相关操作程序才会进一步执行,所以有时程序使用了MessageBox会阻塞相关功能代码执行.例如,在串口编程中,接收到数据或某项配置成功后弹出一 ...

  8. MessageBox提示框自动关闭

    第一步:新建一个类库,如图: 第二步:添加两个类,CloseState.cs和ShowMsg.cs,代码如下: using System; using System.Collections.Gener ...

  9. 可设置指定时间自动消失的 MessageBox实现

    本文主要是讲如何实现可设置指定时间自动消失的 MessageBox提示框ShowMessageBoxTimeout实现: 在开发客户端应用程序的时候,经常用得WinForm中MessageBox提示框 ...

最新文章

  1. python实现文件下载-Python实现HTTP协议下的文件下载方法总结
  2. 您试图在此 Web 服务器上访问的 Web 应用程序当前不可用
  3. 依赖注入Bean属性——手动装配Bean
  4. Apache SkyWalking的架构设计【译文】
  5. Java Web项目的保存和刷新
  6. 汇编语言-009(表驱动选择 、条件控制流伪指令 、逻辑移位SHL,SHR 算术移位SAL,SAR)
  7. 将openstack的Token认证信息存储在memcache中
  8. php环境编译成品,PHPweb成品网站安装环境要求和安装方法
  9. 买房子需要注意什么?最佳答案
  10. (76) Clojure: Why would someone learn Clojure? - Quora
  11. 红帽认证有效期多久?
  12. python编写一个程序、判断用户输入的数是正数还是负数_编写一个程序,判断用户输入的数是正数还是负数。_学小易找答案...
  13. excel函数 不能正常显示数字
  14. 如何将一个数字转换为字符串并且按照指定格式显示?--TO_CHAR
  15. codevs 5960 信使
  16. 央视《每周质量报告》:揭秘假宽带真相
  17. 北京各大医院专长(转)
  18. 2021了,为什么说音视频技术是技术风口?Android音视频开发这么吃香
  19. docker中安装mongo3.2
  20. python制作gif动图_短短几行Python代码制作的GIF动图

热门文章

  1. 简单工厂设计模式的好处
  2. Linux-Udev机制
  3. 从零开始的MySQL教程——下
  4. shell是什么语言?shell 语言的本质
  5. 音乐平台程序源码分享
  6. Spring关于AOP中关于advice的执行顺序
  7. OpenStack 裸金属
  8. linux查看操作系统版本的命令
  9. day9-为什么会有GIL锁
  10. 小米平板刷机shell怎么退_小米MI PAD(小米平板)手机快速救砖,线刷教程分享,小白轻松救活手机...