ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > 我的酷贴 > Excel VBA > 如何得到月牙形的窗体?

如何得到月牙形的窗体?

作者:绿色风 分类: 时间:2022-08-18 浏览:100
楼主
wise
Q:如何得到月牙形的窗体?
A:ALT+F11→插入模块→输入以下代码:

  1. Option Explicit
  2. Private Declare Function CreateEllipticRgn Lib "gdi32" (ByVal x1 As Long, ByVal Y1 As Long, ByVal x2 As Long, ByVal Y2 As Long) As Long
  3. Private Declare Function CombineRgn Lib "gdi32" (ByVal hDestRgn As Long, ByVal hSrcRgn1 As Long, ByVal hSrcRgn2 As Long, ByVal nCombineMode As Long) As Long
  4. Private Declare Function SetWindowRgn Lib "user32" (ByVal hwnd As Long, ByVal hRgn As Long, ByVal bRedraw As Boolean) As Long
  5. Private Declare Function GetActiveWindow Lib "user32" () As Long
  6. Const RGN_XOR = 3

  7. '得到的窗体是两个相连的月牙形
  8. Private Sub UserForm_Initialize()
  9. Dim x1, x2
  10. Dim hwnd As Long
  11. hwnd = GetActiveWindow()
  12. x1 = CreateEllipticRgn(100, 100, 400, 400)
  13. x2 = CreateEllipticRgn(200, 100, 500, 400)
  14. CombineRgn x1, x1, x2, RGN_XOR
  15. SetWindowRgn hwnd, x1, 1
  16. End Sub
  17. Private Sub UserForm_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
  18. Unload Me
  19. End Sub


如何得到月牙形的窗体.rar
2楼
0Mouse
貌似运行结果不是那么完美!

 
3楼
acecrazy
运行情况同零鼠兄,VBE界面只能看到一点。

免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap