VB能做异形窗口吗?能否给个源码参考参考!TKS

jzc376599425 2011-04-18 10:31:39
我要做的不是简单的异形窗口~

要的是那种边缘光滑的,就像PS里羽化效果一样的异形,这个。。你懂的!

能否上个源码给我~谢谢,发到邮箱也可以~ dongaihua500@163.com
...全文
131 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
jzc376599425 2011-04-18
  • 打赏
  • 举报
回复
嗯 我找到了 谢谢楼上,枕善居好牛b的说!上分!
jzc376599425 2011-04-18
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 supermanking 的回复:]
要达到你要求的效果,可以用 UpdateLayeredWindow 函数配合 GDIPlus 来操作窗口。
网上有很多范例,你搜索一下就有答案了,我记得沈善居里有这样的范例程序,你可以去
看看。
[/Quote]
能否给个枕善居源码的传送门!
现在还是人类 2011-04-18
  • 打赏
  • 举报
回复
要达到你要求的效果,可以用 UpdateLayeredWindow 函数配合 GDIPlus 来操作窗口。
网上有很多范例,你搜索一下就有答案了,我记得沈善居里有这样的范例程序,你可以去
看看。
dbcontrols 2011-04-18
  • 打赏
  • 举报
回复
在窗体上画三个圆
Private Declare Function CombineRgn Lib "gdi32" (ByVal hDestRgn As Long, ByVal hSrcRgn1 As Long, ByVal hSrcRgn2 As Long, ByVal nCombineMode As Long) As Long
Private Declare Function GetWindowRgn Lib "user32" (ByVal hWnd As Long, ByVal hRgn As Long) As Long
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 Const RGN_AND = 1
Private Const RGN_COPY = 5
Private Const RGN_DIFF = 4
Private Const RGN_OR = 2
Private Const RGN_XOR = 3

Private Sub Form_Load()
Me.ScaleMode = 3
End Sub
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim hRgn1, hRgn2, hRgn3 As Long
hRgn1 = CreateEllipticRgn(Me.Shape1.Left, Me.Shape1.Top, _
Me.Shape1.Left + Me.Shape1.Width, Me.Shape1.Top + Me.Shape1.Height)
hRgn2 = CreateEllipticRgn(Me.Shape2.Left, Me.Shape2.Top, _
Me.Shape2.Left + Me.Shape2.Width, Me.Shape2.Top + Me.Shape2.Height)
hRgn3 = CreateEllipticRgn(Me.Shape3.Left, Me.Shape3.Top, _
Me.Shape3.Left + Me.Shape3.Width, Me.Shape3.Top + Me.Shape3.Height)

Call CombineRgn(hRgn1, hRgn1, hRgn2, RGN_OR)
Call CombineRgn(hRgn1, hRgn1, hRgn3, RGN_OR)
Call SetWindowRgn(Me.hWnd, hRgn1, True)
End Sub

Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
Call SetWindowRgn(Me.hWnd, 0, True)
End Sub

7,763

社区成员

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

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