📄 form1.frm
字号:
VERSION 5.00
Begin VB.Form Form1
BorderStyle = 0 'None
Caption = "生成不规则窗体程序"
ClientHeight = 4845
ClientLeft = 0
ClientTop = 0
ClientWidth = 3090
LinkTopic = "Form1"
Picture = "Form1.frx":0000
ScaleHeight = 4845
ScaleWidth = 3090
ShowInTaskbar = 0 'False
StartUpPosition = 2 '屏幕中心
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
'**********************************************
'* Web URL: http://xxlno2vb.yeah.net *
'* 作者: xxlno2 *
'* E-Mail:xxlno2@yeah.net *
'* xxlno2@sina.com *
'* 如有问题请来信联系 *
'* 由于程序还不完善,还请多指教 *
'* 欢迎来信讨论VB问题。 *
'**********************************************
'*************生成不规则窗体范例程序***********
'本程序根据生成窗体数据程序提供的数据文件生成
'新的窗体,数据文件的位置在本程序的相同目录中
'配合生成窗体数据程序,生成不规则窗体
'注意属性设置 ,不然果有差异
'Form1.BorderStyle= 0 -None
'Form1.Picture 加载为窗体数据文件相同的图像
'用户自行调节窗体大小,本程序没有自动调节功能
'这是本程序需要改进的地方
'窗体的大小大于或等于图像大小,最好和图像一样大小
'************************************************
'鼠标位置的变量
Dim mX As Integer
Dim mY As Integer
'rgn1 和 rgn2 是存放区域的变量
Private Sub Form_Load()
Dim Ma As Dat
Show
'打开不规则窗体的数据文件,随机文件方式
'****注意"MA.dat"要在本程序的目录内***
'不然App.Path要改为"Ma.dat"所在的目录
'如果找不到窗体数据有可能窗体会看不到
Open App.Path & "\Ma.dat" For Random As #1 Len = Len(Ma)
'循环读取 Ma.dat 的数据
'只要遇到文件尾结束读取数据
Do While Not EOF(1)
'N 为读取数据的数据指针
n = n + 1
'读取第n个
Get #1, n, Ma
'rgn1区域变量没有存放区域数据时,存放头个矩形区域
If rgn1 = 0 Then rgn1 = CreateRectRgn(Ma.sx, Ma.sy, Ma.ex, Ma.ey)
'rgn1变量以有存放数据时,把其它矩形区域数据存放在rgn2中
If rgn1 <> 0 Then
rgn2 = CreateRectRgn(Ma.sx, Ma.sy, Ma.ex, Ma.ey)
'把两个矩形区域合成一个并存放在rgn1中
CombineRgn rgn1, rgn1, rgn2, 2
'释放系统资源
DeleteObject rgn2
End If
Loop
'关闭文件
Close #1
'生成窗体数据文件所设置成的窗体
'创建不规则窗体------“完工”。
'一个绝世的窗体降临 ^_^ ,在你的手中创生
SetWindowRgn hWnd, rgn1, True
DeleteObject rgn1
End Sub
'***********************************************
'以下程序是为了窗体少的标题栏没法移动窗体,
'所设计的与不规则窗体 没有大关系的程序----窗体移动
'*********************************
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
'当鼠标单击按下时,把当前鼠标的位置存放在变量
'左钮单击
If Button = 1 Then
mX = X '存放X轴
mY = Y
End If
End Sub
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
'当鼠标单击后移动时,窗体跟着移动
If Button = 1 Then
Form1.Move Form1.Left - mX + X, Form1.Top - mY + Y
End If
End Sub
'********************************
'注:由于窗体移后会留下影子,这可能是正常现象
'由有什么意见请来信 xxlno2@yeah.net
'记住---我永远是你的朋友 XXLno2
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -