ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 32623|回复: 53

[求助] 如何去除窗体四周的边框(即窗体没有边框)?

[复制链接]

TA的精华主题

TA的得分主题

发表于 2005-11-3 09:36 | 显示全部楼层 |阅读模式

在论坛上,看到的代码多是去除窗体的标题栏、关闭按钮,现在有一个问题想请教大家:如何去除窗体四周的边框(即窗体没有边框)?

以下的代码不能实现去除窗体的边框的功能:

Private Declare Function DrawMenuBar Lib "user32" (ByVal Hwnd As Long) As Long 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 FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long Private Const GWL_STYLE As Long = (-16) Private Const WS_BORDER = &H800000 '窗口带有一个薄边框 Private Const WS_DLGFRAME = &H400000 '带有一般对话框的风格,但没有标题栏 Private Const WS_CAPTION = &HC00000 '窗口带有一个标题栏,经测试,实际上等于 (WS_BORDER Or WS_DLGFRAME) Private Const WS_SIZEBOX = &H40000 '窗口带有一个可以调整窗口大小的边框(即VB里的Sizable,其他地方的边框均指不具调整大小功能的边框) Private Const WS_THICKFRAME = &H40000 Private Const WS_MAXIMIZEBOX = &H10000 '窗口带有最大化按钮,该窗口必须具有 WS_CAPTION 风格 Private Const WS_MINIMIZEBOX = &H20000 '窗口带有最小化按钮,该窗口必须具有 WS_CAPTION 风格 Private Const WS_SYSMENU = &H80000 '在窗口的标题栏上增加一个系统菜单,该窗口必须具有 WS_CAPTION 风格(即WS_BORDER和WS_DLGFRAME) Private Const WS_HSCROLL = &H100000 '窗口带有一个水平滚动条 Private Const WS_VSCROLL = &H200000 '窗口带有一个垂直滚动条 Private Const WS_OVERLAPPED = &H0& '窗口是一个交迭式窗口。交迭式窗口带有一个标题栏和一个边框 Private Const WS_TILED = &H0& '窗口是一个交迭式窗口。交迭式窗口带有一个标题栏和一个边框 Private Const WS_OVERLAPPEDWINDOW = (WS_OVERLAPPED Or WS_CAPTION Or WS_SYSMENU Or WS_THICKFRAME Or WS_MINIMIZEBOX Or WS_MAXIMIZEBOX) _ '窗口是一个交迭式窗口,并且组合了 WS_OVERLAPPED, WS_CAPTION, WS_SYSMENU,WS_THICKFRAME, WS_MINIMIZEBOX 以及 WS_MAXIMIZEBOX 这些风格 Private Const WS_TILEDWINDOW = WS_OVERLAPPEDWINDOW Private Sub UserForm_Click() Unload Me End Sub Private Sub UserForm_Initialize() Dim IStyle As Long, Hwnd As Long If Val(Application.Version) < 9 Then Hwnd = FindWindow("ThunderXFrame", Me.Caption) '获取窗口句柄 Else Hwnd = FindWindow("ThunderDFrame", Me.Caption) '获取窗口句柄 End If IStyle = GetWindowLong(Hwnd, GWL_STYLE) ' IStyle = IStyle And WS_CAPTION SetWindowLong Hwnd, GWL_STYLE, IStyle And Not WS_OVERLAPPEDWINDOW DrawMenuBar Hwnd End Sub

在VB中,用 SetWindowLong Hwnd, GWL_STYLE, IStyle And Not WS_OVERLAPPEDWINDOW 是可以实现没有边框的窗体的。

arb2gY5J.rar (136.97 KB, 下载次数: 474)
[此贴子已经被作者于2005-11-3 9:41:28编辑过]

如何去除窗体四周的边框(即窗体没有边框)?

如何去除窗体四周的边框(即窗体没有边框)?

如何去除窗体四周的边框(即窗体没有边框)?

如何去除窗体四周的边框(即窗体没有边框)?

mJ9NPq92.rar

213.14 KB, 下载次数: 549

如何去除窗体四周的边框(即窗体没有边框)?

TA的精华主题

TA的得分主题

发表于 2005-11-3 09:38 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
请看一看我的“登录界面”有实例啊!
[此贴子已经被作者于2005-11-3 9:38:43编辑过]

TA的精华主题

TA的得分主题

 楼主| 发表于 2005-11-3 09:48 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
york888 兄:您的作品上,也是有窗体的边框的,如何把他们给去掉?

如何去除窗体四周的边框(即窗体没有边框)?

如何去除窗体四周的边框(即窗体没有边框)?

TA的精华主题

TA的得分主题

发表于 2005-11-3 09:53 | 显示全部楼层
请看第9楼,有例子。同时请兄台foshan优化一下!谢谢。http://club.excelhome.net/viewthread.php?tid=124161

TA的精华主题

TA的得分主题

 楼主| 发表于 2005-11-3 10:05 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
york888 兄,您误解我所说的窗体无边框的意思了,我指的窗体无边框不但是指没有蓝色的边框,而且也指窗体四周没有约2毫米宽的框线。您的作品是把标题栏给去掉了(包括窗体四周蓝色的边框),但窗体的四周依然有约2毫米宽的框线。您看我在第一楼的第二个附件,那个窗体就是什么边框都没有的,我是想在VBA中实现这种窗体效果。

TA的精华主题

TA的得分主题

发表于 2005-11-3 10:25 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

foshan 你好!

我明白了,我也只能量力而为,我的水平暂时未能实现到你要求的水平,无能为力,看那位高手帮忙一下吧,我也想学习!谢谢。

[此贴子已经被作者于2005-11-3 10:27:13编辑过]

TA的精华主题

TA的得分主题

发表于 2005-11-3 10:32 | 显示全部楼层

几位都是高人,我什么时候能聊到这些话题呢,唉,等待今生。。。。。。

TA的精华主题

TA的得分主题

发表于 2005-11-3 10:38 | 显示全部楼层
以下是引用学习分享在2005-11-3 10:32:07的发言:

几位都是高人,我什么时候能聊到这些话题呢,唉,等待今生。。。。。。

你的作品我看过,非常专业有水平!还望多多交流。

TA的精华主题

TA的得分主题

 楼主| 发表于 2005-11-3 10:41 | 显示全部楼层
学习分享:不必灰心,我学API函数也不过一个来月,API函数也是有难有易的,关键是兴趣。我现在学习API函数,甚感到困难和阻力重重,而且非常无助---主要是书籍方面。有很多知识目前只能是“记住”API函数的不成文的规则,无法真正理解。

TA的精华主题

TA的得分主题

发表于 2005-11-3 10:57 | 显示全部楼层
好,谢谢你们的鼓励,我努力吧!
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-18 08:40 , Processed in 0.043542 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表