作者:绿色风
分类:
时间:2022-08-17
浏览:139
楼主 wise |
Q:如何设置窗体为三角形? A:ALT+F11→插入模块→输入以下代码:
- Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
- '如果函数执行成功,则返回值是拥有指定窗口类名或窗口名的窗口的句柄。 如果函数执行失败,则返回值为 NULL 。
- Private Declare Function SetWindowRgn Lib "user32" (ByVal hWnd As Long, ByVal hRgn As Long, ByVal bRedraw As Boolean) As Long
- '如果函数调用成功,回返价值是非零;如果函数调用失败,回返价值是零。
- Private Declare Function CreatePolygonRgn Lib "gdi32" (lpPoint As PointAPI, ByVal nCount As Long, ByVal nPolyFillMode As Long) As Long
- '创建一个由一系列点围成的区域?windows在需要时自动将最后点与第一点相连以封闭多边形
- '[参数表]
- 'lpPoint →→-- POINTAPI,nCount个POINTAPI结构中的第一个POINTAPI结构
- 'nCount →→→ Long,多边形的点数
- 'nPolyFillMode -- Long,描述多边形填充模式。可为ALTERNATE 或 WINDING常数。参考SetPolyFillMode函数对多边形填充模式的解释
- '[返回值]
- 'Long,执行成功为创建的区域句柄,失败则为0
- '[其它] 不用时一定要用DeleteObject函数删除该区域
- Private Type PointAPI
- X As Long
- Y As Long
- End Type
- Private Sub UserForm_Initialize()
- Dim A(6) As PointAPI
- '定义一个数组
- Dim hRgn As Long
- A(0).X = 0: A(0).Y = 0
- '0顶点的坐标坐落在(0,0)
- A(1).X = 0: A(1).Y = 100
- '1顶点的坐标坐落在(0,100)
- A(2).X = 50: A(2).Y = 30
- '2顶点的坐标坐落在(50,30)
- A(3).X = 30: A(3).Y = 30
- '3顶点的坐标坐落在(30,30)
- A(4).X = 30: A(4).Y = 50
- '4顶点的坐标坐落在(30,50)
- A(5).X = 100: A(5).Y = 0
- '5顶点的坐标坐落在(100,0)
- MyRgn = CreatePolygonRgn(A(0), 6, 1)
- MyWin = FindWindow("ThunderDFrame", Me.Caption) ''类名,窗口名
- SetWindowRgn MyWin, MyRgn, True
- End Sub
- Private Sub UserForm_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
- Unload Me
- End Sub
窗体设置为三角形.rar |
2楼 亡者天下 |
过来学习一下 |
免责声明
有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素,
经与ExcelTip.Net站长Apolloh商议并征得其同意,
现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示,
供有需要的人士查询使用,也慰缅曾经的论坛时代。
所示各个帖子的原作者如对版权有异议,
可与本人沟通提出,或于本站点留言,我们会尽快处理。
在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一