pywin32 获取窗口句柄_Excel VBA | 这个窗口居然关不掉

我的目标:让中国的大学生走出校门的那一刻就已经具备这些office技能,让职场人士能高效使用office为其服务。支持我,也为自己加油!

还有关不掉的窗体?

先来看下效果:

2e70ef0403b4ab169c429b341b771663.gif

通过上图,大家很容易看出二者之间的区别,有些情况下,我们需要这种窗体,比如网页中弹出的广告,没有关闭按钮,用户无法关闭。那怎么创建一个无标题栏的窗体呢?Excel本身并没有提供一种直接的方法来显示无标题栏的用户窗体,只能借助于API函数实现。上述案例中无标题栏窗体的创建方法如下:一、在VBE中添加窗体,插入一个Label,Caption属性按图中进行修改。这里有一个问题,在Label中输入文字后需要断行怎么断?按Ctrl+Enter。二、双击窗体,在窗体中输入如下代码:
#If VBA7 And Win64 Then    Private Declare PtrSafe Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long    Private Declare PtrSafe Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long    Private Declare PtrSafe Function DrawMenuBar Lib "user32" (ByVal hWnd As Long) As Long    Private Declare PtrSafe Function FindWindowA Lib "user32" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long#Else    Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long    Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long    Private Declare Function DrawMenuBar Lib "user32" (ByVal hWnd As Long) As Long    Private Declare Function FindWindowA Lib "user32" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long#End IfConst GWL_STYLE = -16Const WS_CAPTION = &HC00000Private Sub UserForm_Initialize()    Dim lngWindow As Long, lFrmHdl As Long    lFrmHdl = FindWindowA(vbNullString, Me.Caption)    lngWindow = GetWindowLong(lFrmHdl, GWL_STYLE)    lngWindow = lngWindow And Not WS_CAPTION    Call SetWindowLong(lFrmHdl, GWL_STYLE, lngWindow)    Call DrawMenuBar(lFrmHdl)End Sub

向左滑动可以查看完整代码

看着很复杂,难在对四个API函数的理解上,梳理下,其实也没那么复杂。整段代码分两部分,第一部分,因为要使用API函数,所以要进行声明,因为涉及到32位和64的office版本,所以声明时用#If VBA7 And Win64 Then#Else#End If的结构。64位的Excel中相比32位的Excel声明API函数就多了一个关键字PtrSafe,其它的都一样,而每个API函数的声明在网上都可以查到,所以这些没必要记,只要知道哪个API函数可以干什么事情就可以了。Sub过程部分,在窗体初始化时,首先要FindWindowA函数获取到这个窗体的句柄。关于句柄(handle),大家可以百度,简单理解的话就是每打开一个窗口,系统就会给该窗口分配一个句柄,系统想要对这个窗口做出响应是要通过该句柄进行的。就像公司给每个员工分配一个工号道理差不多。获取到该窗体的句柄后,通过GetWindowLong函数获取到该窗口的信息,GWL_STYLE为该函数的第二个参数的一个常量,表示要获取的窗口样式。lngWindow = lngWindow And Not WS_CAPTION表示从获取到的窗口样式中除去WS_CAPTION(窗体的标题),即lngWindow代表的样式为无标题样式。然后用SetWindowLong函数为窗口重新设置信息,然后用DrawMenuBar函数重画窗口。以上便是无标题窗口的创建方法。

本节的分享就到这里,鹏哥祝大家每天都有进步。

聚米为谷

博学宏才

更多学习内容

手机端请扫描

c559d552bb40041dbf95653c99342474.png

电脑端请登录

www.mihong.top

346d5b5d288598bd44e396f1de77e989.gif您点的每个赞,我都认真当成了喜欢

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/501803.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

cassss服务未启动_电梯启动死机故障处理方法

电梯情况描述:广东奥的斯,有机房 梯龄5年故障现象描述:现场人员反馈,停梯一晚,第二天开梯,门一开就死机,显示HAD,断电复位后电梯正常维修过程描述:1、到达现场查看历史故…

合振动的初相位推导_基于振动信号的机械设备故障诊断(一)

1.概述振动在旋转机械设备故障中占了很大比重,是影响设备安全,稳定运行的重要因素。振动直接反应了设备的健康状况,是设备安全评估的重要指标。通过对振动分析方法的调查,熟悉一般的振动分析流程及方法,从而对检测设备…

linux 启动db2 服务器,Linux系统设置DB2等服务开机启动的过程

Linux系统中向要设置开机启动,就要通过代码来实现。通过编写脚本能够把服务加到Linux开机启动项中,本文就来介绍一下Linux系统中设置DB2等服务开机启动的过程。1.转到/etc/init.d 目录下。以root身份执行Shell代码cd /etc/init.d2.编写DB2启动脚本Shell代…

spring elasticsearch 按条件删除_SpringBoot2 高级案例(08):整合 ElasticSearch框架,实现高性能搜索引擎...

一、安装和简介ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。ElasticSe…

linux编译框架的搭建,Linux精华篇—CentOS 7.4下源码编译构建LNMP架构

CentOS 7.4搭建LNMP最新版本LNMP:Linux7.4、ngnix1.13.9、mysql5.7.20、php7.1.10目录:第一部分 准备工作第二部分 安装nginx服务第三部分 安装MySQL数据库第四部分 搭建PHP运行环境第五部分 LNMP架构应用(搭建DISCUZ论坛)第一部分 准备工作一&#xff1…

linux设备资源分配,基于Linux 简化 AMP 配置使其更方便更动态地分配资源

描述嵌入式系统一般分为两大类:需要硬实时性能的;和不需要硬实时性能的。过去,我们不得不做出艰难抉择: 选择实时操作系统的性能还是我们钟爱的 Linux 系统的丰富特性,然后努力弥补不足之处?如今,嵌入式开…

linux qt显示gif图片,QT显示GIF图片

在QT中要显示GIF图片,不能通过单单的添加部件来完成.还需要手动的编写程序.工具:QT Creator新建一个工程,我们先在designer中,添加一个QLabel部件.如下图:将QLabel拉成适当大小.在类cpp函数中添加如下程序:#include "widget.h"#include "ui_widget.h"#incl…

u盘启动蓝屏 索尼vaio_U盘重装系统出现蓝屏?不要急,这四个手段轻松帮你解决!...

现如今U盘重装系统是主流的重装系统方式,通过U盘PE重装系统是大多数用户重装电脑系统的第一选择。不过在用U盘重装系统的时候,进入PE系统有时候会出现一些问题。有用户进入PE系统就蓝屏,这是怎么回事呢?下面就让韩博士小编为大家带…

数据库系统工程师考c语言吗,2019年数据库系统工程师考点:DBMS的基本功能

【导语】2019年数据库系统工程师考试备考正在进行中,为了方便考生及时有效的备考,那么,无忧考网为您精心整理了2019年数据库系统工程师考点:DBMS的基本功能,欢迎大家的参考学习。如想获取更多数据库系统工程师考试的模…

android要求图标格式,Android设计规范 Material Design-Style(3图标)

图标系统图标定义系统图标或者UI界面中的图标代表命令、文件、设备或者目录。系统图标也被用来表示一些常见功能,比如清空垃圾桶、打印或者保存。系统图标的设计要简洁友好,有潮流感,有时候也可以设计的古怪幽默一点。要把很多含义精简到一个…

华为开发微信鸿蒙版,HUAWEI DevEco Studio

华为鸿蒙2.0开发平台为开发者在PC上面所提供的的开发平台,这个平台能够让用户在PC和Mac上面完成对鸿蒙相关开发内容,开发者能够在这个官方的平台当中开发属于自己的应用内容,更好的开发属于自己的应用并且在上面进行全面的调试,感…

function里面可以写function吗_和田玉不戴的时候,可以长时间泡在水里面吗?

叶子珠宝翡翠批发商城数百万玉石好友聚集地翡翠行业最活跃的领军,实力收藏家都在关注新朋友请点击叶子珠宝翡翠批发商城关注!抢购源头翡翠!请加1号店微信号:stchenchuye(←长按复制请加2号店微信号:feicui1236(←长按复…

android智能老人机系统,国产老人机也可以变智能!可运行Android

原标题:国产老人机也可以变智能!可运行Android相信很多用户对老人机的认知都是大电池、小屏幕、高音量以及功能少。看完下边这个老年机,你的认知可能会被颠覆。微博用户极客村长今天在微博上放出了一张来自国内厂商TETC的老人机图片&#xff…

golang商城_Golang——简单是终极的成熟

Google的Rob Pike在2012年的主题演讲中说:“ Go的目的不是要对编程语言设计进行研究; 这是为了为其设计师及其同事改善工作环境。 与编程语言研究相比,Go不仅仅是软件工程。 换一句话,它与软件工程服务中的语言设计有关。” 演讲揭…

android 换行模式,Android进阶之自定义View(1)实现可换行的TextView

今天来一起学习一下最简单的自定义view,自己动手写一个MyTextView,当然不会像系统的TextView那么复杂,只是实现一下TextView的简单功能,包括分行显示及自定义属性的处理,主要目的是介绍自定义view的实现的基本思路和需要掌握的一些基础知识。…

html调用chr,FpHtmlEnCode 函数之标题过滤特殊符号的代码

FpHtmlEnCode 函数之标题过滤特殊符号的代码更新时间:2007年09月01日 22:11:50 作者:函数名:FpHtmlEnCode作 用:标题过滤参 数:fString ------字符串Function FpHtmlEnCode(fString)If IsNull(fString)False or fS…

html怎么给code标签添加语言,html code标签怎么用?html code标签的作用解释

本篇文章主要的讲述了关于HTML code标签的用法解释,和HTML code标签的用法实例,最后还有code标签的总结。接下来让我们一起来看这篇文章吧首先我们先看看html code标签的用法解释:标签用于表示计算机源代码或者其他机器可以阅读的文本内容。软件代码的编…

网页挂码方式html css,CSS代码 解决网页挂马问题

CSS代码 解决网页挂马问题发布时间:2009-10-01 02:13:24 作者:佚名 我要评论两行CSS来解决网页挂马问题,共5种方案。两行CSS来解决,共5种方案一、iframe{n1ifm:expression(this.srcabout:blank,this.outerHTML);}/*这行代码是…

计算机科学系小学教育专业就业前景,小学教育专业就业方向与就业前景

【导语】现在大学生就业形势越来越严峻,在填报志愿时,如果不是特别喜欢某一专业的话,选一个好就业的专业就显得尤为重要了,就业的专业排名是很多考生和家长朋友们关心的问题,以下是无忧考网整理的小学教育专业就业方向…

java绘制图形代码_ImagePy_Learn | 图形学绘制代码学习:core\draw\polygonfill.py

最近在学图形学绘制,想到了ImagePy框架的ROI涂抹交互很方便,于是啃起了绘制代码。这里主要对ImagePy中一个填充工具进行难点讲解。让我们好好学习Python中的图形学绘制吧。例子代码来源:https://github.com/Image-Py/imagepy/blob/master/ima…