本文原文链接:https://blog.csdn.net/qq_43307934/article/details/84933196
————————————————

MessageBoxTimeout是一个微软未公开的Windows API函数。实现定时消息,功能类似于MessageBox。如果用户不回应,能定时关闭消息框。函数由user32.dll导出,windows2000及以下没有此函数。

原型:

int MessageBoxTimeoutA(HWND hWnd, LPCSTR lpText, LPCSTR lpCaption, UINT uType, WORD wLanguageId, DWORD dwMilliseconds);

int MessageBoxTimeoutW(HWND hWnd, LPCWSTR lpText, LPCWSTR lpCaption, UINT uType, WORD wLanguageId, DWORD dwMilliseconds)[1]
参数:

hwnd//消息框的拥有窗口。
lptext//消息框的内容。
lpCaption//消息框的标题。
uType//指定一个决定对话框的按钮类型和图标类型的位标志集。
wLanguageId//函数扩展,一般取0。
dwMilliseconds//消息框延迟关闭时间,单位:毫秒。
UTYPE取值:

uType:按钮类型,以下给出常量,可相加。
意思是从需要的每一组中选择一种功能,将其前面的数值相加,写在uType的取值处,
这样,对话框就能应用所有选定的功能。

每组只能取一个类型,第五组除外,复制于易语言给出的提示。

第一组(描述对话框中显示按钮的类型与数目):
0、#确认钮;1、#确认取消钮;2、#放弃重试忽略钮;3、#取消是否钮;4、#是否钮;5、#重试取消钮
第二组(描述图标的样式):
16、#错误图标; 32、#询问图标; 48、#警告图标; 64、#信息图标
第三组(说明哪一个按钮是缺省默认值):
0、#默认按钮一; 256、#默认按钮二; 512、#默认按钮三; 768、#默认按钮四
第四组(决定如何等待消息框结束):
0、#程序等待; 4096、#系统等待
第五组(其它):
65536、#位于前台; 524288、#文本右对齐
返回值:

除了选则第一组的0类型时,返回是1,其它类型都是默认返回是32000。

确认:1

取消:2

中止:3

重试:4

忽略:5

是:6

否:7

1、在类的开头增加如下代码:
[DllImport("user32.dll")]
public static extern int MessageBoxTimeoutA(IntPtr hWnd, string msg, string Caps, int type, int Id, int time); //引用DLL
像这样:

2、 在按钮事件或者鼠标事件等其它事件中,加入如下代码:
MessageBoxTimeoutA((IntPtr)0, "3秒后自动关闭", "消息框", 0, 0, 3000); // 直接调用 3秒后自动关闭
像这样:

————————————————
版权声明:本文为CSDN博主「 子不语」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_43307934/article/details/84933196

WPF编程,C#中对话框自动关闭的一种方法(转载)的更多相关文章

  1. WPF编程,C#中对话框自动关闭的一种方法。

    原文:WPF编程,C#中对话框自动关闭的一种方法. 版权声明:我不生产代码,我只是代码的搬运工. https://blog.csdn.net/qq_43307934/article/details/8 ...

  2. WPF编程,自定义鼠标形状的一种方法。

    原文:WPF编程,自定义鼠标形状的一种方法. 版权声明:我不生产代码,我只是代码的搬运工. https://blog.csdn.net/qq_43307934/article/details/8727 ...

  3. Java中遍历map的四种方法 - 转载

    在Java中如何遍历Map对象 How to Iterate Over a Map in Java 在java中遍历Map有不少的方法.我们看一下最常用的方法及其优缺点. 既然java中的所有map都 ...

  4. VS编程,WPF单独更改TextBlock中部分文字格式的一种方法

    原文:VS编程,WPF单独更改TextBlock中部分文字格式的一种方法 版权声明:我不生产代码,我只是代码的搬运工. https://blog.csdn.net/qq_43307934/articl ...

  5. C#中实现并发的几种方法的性能测试

    C#中实现并发的几种方法的性能测试 0x00 起因 去年写的一个程序因为需要在局域网发送消息支持一些命令和简单数据的传输,所以写了一个C/S的通信模块.当时的做法很简单,服务端等待链接,有用户接入后开 ...

  6. PHP中获取星期的几种方法

    PHP中获取星期的几种方法   PHP星期几获取代码: 1 date(l); 2 //data就可以获取英文的星期比如Sunday 3 date(w); 4 //这个可以获取数字星期比如123,注意0 ...

  7. CSS中隐藏内容的3种方法及属性值

    CSS中隐藏内容的3种方法及属性值 (2011-02-11 13:33:59)   在制作网页时,隐藏内容也是一种比较常用的手法,它的作用一般有:隐藏文本/图片.隐藏链接.隐藏超出范围的内容.隐藏弹出 ...

  8. 关于iOS去除数组中重复数据的几种方法

    关于iOS去除数组中重复数据的几种方法   在工作工程中我们不必要会遇到,在数组中有重复数据的时候,如何去除重复的数据呢? 第一种:利用NSDictionary的AllKeys(AllValues)方 ...

  9. JS去除数组中重复值的四种方法

    JS去除数组中重复值的四种方法 1 /// <summary>            o[this[i]] = "";  }      }       newArr.p ...

随机推荐

  1. 每天学会一点点(重写equals一定要重写hashcode)

    package com.example.demo.javaError; import java.util.HashMap; /** * Created by yyy on 2019/01/24. */ ...

  2. JDBC进行批处理Batch

    在实际的项目开发中,有时候需要向数据库发送一批SQL语句执行,这时应避免向数据库一条条的发送执行,而应采用JDBC的批处理机制,以提升执行效率. JDBC实现批处理有两种方式:statement和pr ...

  3. AtomicInteger 一个提供原子操作的Integer类

    转自:http://www.blogjava.net/freeman1984/archive/2011/10/17/361402.html AtomicInteger,一个提供原子操作的Integer ...

  4. ubuntu上vritualbox为系统分配硬盘空间

    VBoxManage是virtualbox 在ubuntu上提供的管理virtualbox的命令行命令 VBoxManage modifyhd windowsDevEnv --resize VBoxM ...

  5. Go微服务全链路跟踪详解

    在微服务架构中,调用链是漫长而复杂的,要了解其中的每个环节及其性能,你需要全链路跟踪. 它的原理很简单,你可以在每个请求开始时生成一个唯一的ID,并将其传递到整个调用链. 该ID称为Correlati ...

  6. Senparc.Weixin.MP SDK 微信公众平台开发教程(二十二):如何安装 Nuget(dll) 后使用项目源代码调试

    最近碰到开发者问:我使用 nuget 安装了 Senparc.Weixin SDK,但是有一些已经封装好的过程想要调试,我又不想直接附加源代码项目,这样就没有办法同步更新了,我应该怎么办? 这其实是一 ...

  7. 如何更规范化使用MySQL

    如何更规范化使用MySQL 背景:一个平台或系统随着时间的推移和用户量的增多,数据库操作往往会变慢:而在Java应用开发中数据库更是尤为重要,绝大多数情况下数据库的性能决定了程序的性能,如若前期埋下的 ...

  8. asp.net core IdentityServer4 实现 Client credentials(客户端凭证)

    前言 OAuth 2.0默认四种授权模式(GrantType) 授权码模式(authorization_code) 简化模式(implicit) 密码模式(resource owner passwor ...

  9. 接口测试时数据格式是json,如何将响应内容转换为字典解析

    import requests url = 'http://127.0.0.1:5050/index' def apiTestPost(url): datas = { 'a':'cisco3', 'b ...

  10. 品Spring:负责bean定义注册的两个“排头兵”

    别看Spring现在玩的这么花,其实它的“筹码”就两个,“容器”和“bean定义”. 只有先把bean定义注册到容器里,后续的一切可能才有可能成为可能. 所以在进阶的路上如果要想走的顺畅些,彻底搞清楚 ...