首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

创建可调大小的用户窗体——使用Windows API

标签:VBA,Windows API 在使用VBA创建用户窗体时,通常会将其设置为特定的大小。然而,通过一些编码技巧,可以为其实现类似的调整大小效果。...ResizeWindowSettings(frm As Object, show As Boolean) Dim windowStyle As Long Dim windowHandle As Long '获取Windows...windowStyle + (WS_THICKFRAME) End If '应用新样式 SetWindowLong windowHandle, GWL_STYLE, windowStyle '使用新样式重新创建用户窗体窗口...DrawMenuBar windowHandle End Sub 上面的两个代码段创建了一个可重复使用的过程,可以使用它来打开或关闭调整用户窗体大小的设置。...如果想要能够调整用户窗体大小,使用: Call ResizeWindowSettings(myUserForm, True) 关闭调整用户窗体大小,使用: Call ResizeWindowSettings

31730

将自动通知窗体集成到类中

在IE的右下角自动弹出一个通知窗口,几秒后慢慢消失,这个现在是很常见的js代码实现的功能,但是,我希望能够把这个功能集成起来,使用时尽量简化,所以尝试作了一个类,专门来完成这个功能。        ...首先,分析弹出窗体的功能。因为这是js的功能,而且js代码是可见的,所以,如果有别人实现的好点,可以直接就拿来使用了。...我碰到一个页面的通知功能做的还挺不错的,就分析了下代码,发现主要有三部分组成。         1、javascript代码部分。主要是一些函数和一条调用语句,放在body的前面。        ...2、弹出的窗体。         3、样式代码         自己写了个测试页面,测试了这些功能,发现都没有问题。支持弹出,自动隐藏,还支持拖放窗口,总之比较强。         ...第二步,就是要考虑怎样集成起来,简化使用了。用js文件固然可以把js代码分开写,但其它的东西使用起来还是麻烦。

80770
您找到你想要的搜索结果了吗?
是的
没有找到

使用线程新建WPF窗体(公用进度条窗体)

使用线程新建窗体 项目中需要一个公用的进度条窗体.大家知道在wpf中,有两个线程,一个是UI线程,另一个是监听线程(一直监听用户的输入).如果我们后台有阻塞UI线程的计算存在,那么界面上的比如进度条什么动态的...win.Topmost = true; win.Show(); System.Windows.Threading.Dispatcher.Run...在使用过程中发现一个很严重的问题,出现一个进度条窗体,系统内存就会增大一点,到最后要么卡死,要么自动退出.      ...原来在多线程程序运行中,由用户取消操作是一种非常常见的场景,比如用户使用windows资源管理器在当前文件夹中搜索文件时,可以通过点击其它文件夹而取消搜索。...比较合理的方式是外界提出"取消操作"的请求,然后由线程自身来决定如何处理这一请求。

2.1K100

使用 Python 制作按键触发 Windows 通知的自动化脚本

对于键盘没有背光灯的同学而言,切换大小写或控制 Num 键开关的时候没有提示,经常需要试探性地输入一些字符来判断开关是否打开,体验非常糟糕 因此,有人就想到自制脚本这一招,一旦触发大小写切换或 Num 键切换就进行 windows...windows 通知的脚本: 1.准备 首先使用 pip 安装依赖: pip install win10toast 除此之外,我们需要下载作者的代码,请前往以下地址下载: https://github.com.../skate1512/Toggle_Keys_Notification 2.源码使用与解析 2.1 源码使用 作者的项目可以在 Toggle_Keys_Notification 项目内,运行 notify.py...如果你希望通知弹出框久一点再消失,可以适当修改传入的 duration 变量值。 DestroyWindow后,通知弹出框便消失了,整个 show_toast 的过程结束。...其实非常简单,从 CreateWindow 到 DestroyWindow 处理弹出框的各种属性,然后注销窗体,完成整个弹出流程。

1.6K30

Python 制作按键触发Windows通知的脚本

因此,有人就想到自制脚本这一招,一旦触发大小写切换或Num键切换就进行windows通知提示: https://github.com/skate1512/Toggle_Keys_Notification...今天我们来试试这个脚本,此外,我们还可以基于这个项目,扩展成任意一个按键被触发或切换都进行 windows 通知的脚本: 1.准备 开始之前,你要确保Python和pip已经成功安装在电脑上。...Windows环境下打开 Cmd (开始-运行-CMD),苹果系统环境下请打开 Terminal (command+空格输入Terminal),输入命令安装依赖: pip install win10toast...2.源码使用与解析 2.1 源码使用 作者的项目可以在 Toggle_Keys_Notification 项目内,运行 notify.py 启动监听: python notify.py 启动后点击一下大小写切换键...其实非常简单,从 CreateWindow 到 DestroyWindow 处理弹出框的各种属性,然后注销窗体,完成整个弹出流程。

1.8K20

windows 异常处理

为了程序的健壮性,windows 中提供了异常处理机制,称为结构化异常,异常一般分为硬件异常和软件异常,硬件异常一般是指在执行机器指令时发生的异常,比如试图向一个拥有只读保护的页面写入内容,或者是硬件的除...对于一场处理windows封装了一整套的API,平台上提供的异常处理机制被叫做结构化异常处理(SEH)。不同于C++的异常处理,SEH拥有更为强大的功能,并且采用C风给的代码编写方式。...若找到则处理异常,并继续运行程序 2. 如果在线程栈中没有找到,则再次通知调试程序,如果这个时候仍然不能处理这个异常,那么操作系统会对异常进程默认处理,比如强制终止程序。...__finally块,最后执行外层的__except块,最终程序输出结果为1 2 3 win32下的向量化异常处理 为什么向量化异常要强调是win32下的呢,因为64位windows不支持这个特性...而我们想处理这个异常,但是由于内部处理了,外层的try根本捕获不到,这个时候就可以使用向量化异常处理了。

1.4K20

VBA使用API_03:创建窗体

使用Excel VBA要创建窗体非常的简单,直接插入一个用户窗体就可以了,VBA已经封装好了窗体,而且具有很多功能以及控件。...这些在底层都是要调用API,只是我们看不到而已,让我们使用API来创建一个窗体试试,分三步: 注册窗体类 创建窗体 显示窗体、循环接收消息并处理 注册窗体需要用到RegisterClass,必须先要注册一个窗体类...,才能在第二步创建窗体CreateWindowEx进行创建,创建好后必须使用ShowWindow才能显示出来,窗体显示出来之后,如果没有其他要执行的程序,马上就会消失,因为程序运行完成了,所有资源被自动回收了...所以必须要循环接收消息以保证不退出程序,具体要处理的消息Windows已经做好了默认的DefWindowProc回调函数来处理,在RegisterClass的时候可以进行指定回调函数,我们可以在回调函数里去捕获消息进行处理..., SW_SHOWNORMAL '循环读取消息 Do While GetMessage(uMsg, 0, 0, 0) '处理消息

1.8K20

使用Label标签控件模拟窗体标题的移动及窗体颜色不断变换

开发工具:VS2017 语言:C# DotNet版本:.Net FrameWork 4.0及以上 一、使用的WIN32 API有两个,一个为ReleaseCapture,另外一个为SendMessage...为什么要使用这个ReleaseCapture函数,原因在于移动窗体标题时,需要释放对鼠标的捕捉,否则,就不能移动窗体标题。...SendMessage函数:该函数是用来给窗体发送Windows消息, 在本文中,该函数是模拟给非窗体客户区域(如窗体标题、最大化、最小化及关闭按钮区域)发送Windows消息,使特定区域能收到拖动窗体标题的消息...二、构建模拟移动窗体标题的应用程序,在这里我们使用了一个label(左边,label1),用来将鼠标移到该控件并拖动时,可以移动窗体, 另外一个label(右边,label2)则用来关闭窗体,如下图所示...private void label2_Click(object sender, EventArgs e) { this.Close(); } 其中,需要为关闭按钮填写显示“关闭”按钮的提示,因此需要使用

1.5K00

使用msmtp进行邮件通知

现在很多服务器都封禁了25端口,导致博客的邮件通知没法运行,借鉴vps侦探的文章,搭建了msmtp发送邮件。...2、SMTP服务商的选择 在使用上建议使用TLS加密或STARTTLS加密,不建议使用未加密的25端口进行发送邮件,首先未加密可能会存在泄露其次很多VPS或云服务商都已经采取了默认封锁25端口的设置。...6、几个没踩平的坑 开始使用gmail的smtp,测试邮件、正常的邮件通知都可以,等了不到一小时后开始陆续收到Delivery Status Notification (Failure)的邮件,提示错误...更诡异的是失败邮件发了十几封后,后续的测试邮件和邮件通知也是正常的。 换成126邮箱的smtp,提示验证方式为plain,不能连接。Office365提示发送空邮件。...最后按照vps侦探的推荐,尝试了SendinBlue,测试邮件和邮件通知可以正常收到。 本文由 空空裤兜 发布在 空空裤兜,转载此文请保持文章完整性,并请附上文章来源(空空裤兜)及本页链接。

97020

正确使用Java事件通知

同步 要再多线程的环境里使用 StateHolder ,它就必须是线程安全的。不过这也很容易实现,给我们类里面的每个方法加上 synchronized 就搞定了,不是吗? ?...上面这段代码是在之前的基础上稍加改进来实现的,通过使用 Set 实例作为内部锁来提供合适(但也有些过时)的同步性,监听者的通知事件在保护块之外发生,这样就避免了一种死等的可能。...随着 Java 8 的发布,broadcast 方法可以因为Iterable#forEach 和 lambdas表达式的结合使用而变得更加简洁,代码当然也是同样安全,因为迭代依然表现为在“快照”中进行:...异常处理 本文的最后介绍了如何处理抛出 RuntimeExceptions 的那些损坏的监听器。尽管我总是严格对待fail-fast 错误机制,但在这种情况下让这个异常得不到处理是不合适的。...损坏的监听器会有两种方式来破坏系统:第一,它会阻止通知向观察者的传达过程;第二,它会伤害那些没有准备处理好这类问题的调用线程。

1.9K10

初探windows异常处理

首发于奇安信攻防社区:https://forum.butian.net/share/1475 前言 windows系统里,为了保证系统内核的强壮和稳定,为了保证用户程序的强壮和稳定,提供了异常处理机制...,来帮助程序员和系统使用人员处理异常。...如果想要更加深入的掌握操作系统,异常处理的知识是必不可少的,不仅如此,软件调试也与异常处理息息相关。...而KiDispatchException的处理是按照其先前模式来处理的,也就是内核异常与用户异常两种,而不是按照CPU异常与用户模拟异常来进行处理。...RtlDispatchException的作用如下: 遍历异常链表,调用异常处理函数,如果异常被正确处理了,该函数返回1 如果当前异常处理函数不能处理该异常,那么调用下一个,以此类推。

43910

windows错误处理

windows中为每个线程准备了一个存储区,专门用来存储当前API执行的错误码,想要获取这个错误码可以通过函数GetLastError。...但是windows中的错误码实在太多,有的时候错误码并不直观,windows为每个错误码都关联了一个错误信息的文本,想要通过错误码获取对应的文本信息,可以通过函数FormatMessage来获取。...szErrorInfo); HeapFree(GetProcessHeap(), 0, lpMsg); } } return 0; } 在这段代码中我们没有使用...C标准库中的printf,而是使用windows自带的控制台函数WriteConsole,为了简单,我们定义了一个宏,用来输出字符串。...函数格式化字符串后面的参数 ); 第一个参数是标志,在这我们传入FORMAT_MESSAGE_ALLOCATE_BUFFER,表示字符串缓冲区由该函数为我们分配,而不用自己分配,这个时候为了接受返回的字符缓冲区指针,需要使用二级指针

78420
领券