如何用VB做异形窗体?

jyd30 2001-09-28 09:22:45
如何用VB做异形窗体?

http://www.minisoft.d2g.com/
...全文
215 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
leskey 2001-10-10
  • 打赏
  • 举报
回复
有这个控件的,可以做一些简单的异形窗体
复杂的还是用api好了
jyd30 2001-10-10
  • 打赏
  • 举报
回复
_
acptvb 2001-09-29
  • 打赏
  • 举报
回复
感谢您使用微软产品。

你需要先创建一个Region, 然后用SetWindowRgn设置窗体的形状成这个Region.

你可以用下面的API创建Region:

CreateEllipticRgn
CreatePolygonRgn
CreateEllipticRgnIndirect
CreatePolygonRgn
CreatePolyPolygonRgn
CreateRectRgn
CreateRectRgnIndirect
CreateRoundRectRgn
CombineRgn


下面是一段将窗体的形状设置成椭圆的代码

1). Start a Standard EXE, Form1 is added by default.
2). Change the Form1's BorderStyle property to 0-None
3). Put a command button in the center of the Form1.
4). Paste the following code in the code section of Form1

Option Explicit

Private Declare Function CreateEllipticRgn Lib "gdi32" _
(ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, _
ByVal Y2 As Long) As Long

Private Declare Function SetWindowRgn Lib "user32" _
(ByVal hwnd As Long, ByVal hRgn As Long, _
ByVal bRedraw As Boolean) As Long

Private MoveNow As Boolean
Private StartX As Single
Private StartY As Single

Private Sub Command1_Click()
Unload Me
End Sub

Private Sub Form_Load()

Dim rgnhandle As Long

Command1.Caption = "Close Me"
MoveNow = False
Me.Height = 8000
Me.Width = 8000
rgnhandle = CreateEllipticRgn(0, 0, 400, 200)
SetWindowRgn hwnd, rgnhandle, True
End Sub

Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y
As Single)

MoveNow = True
StartX = X
StartY = Y
End Sub

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y
As Single)

If MoveNow Then

Me.Move Me.Left + (X - StartX), Me.Top + (Y - StartY)

End If

End Sub



Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As
Single)

MoveNow = False

End Sub

- 微软亚洲技术中心 VB技术支持

本贴子仅供CSDN的用户作为参考信息使用。其内容不具备任何法律保障。您需要考虑到并承担使用此信息可能带来的风险。具体事项可参见使用条款 (http://www.csdn.net/microsoft/terms.shtm)。
Jover 2001-09-29
  • 打赏
  • 举报
回复
不是一言两语能说清楚,而你的分值太低!
duqiang2050 2001-09-29
  • 打赏
  • 举报
回复
又例程呀,你随便找一下吧,很容易找到,用api做的
jyd30 2001-09-29
  • 打赏
  • 举报
回复
真的没有人知道?

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧