如何制作自定义按钮,非标准形状的按钮?(请教高手,一定给分。) 可以使用VB中的ActiveX Control来打造自己满意的按钮 要求:熟悉ActiveX Control的编程以上仅提供一个方向,给不给分无所谓! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 形状不规则的窗体这也是使用Region的观念,设定一个Region的范围,而後使用SetWindowRgn API,这将使得该Window显示的范围只有在该Region之内,之外的区域全然没有办法显示请先查Mouse是否处於不规则区域内'需一个Command ButtonOption ExplicitConst ALTERNATE = 1Const WINDING = 2Private Type POINTAPI X As Long Y As LongEnd TypePrivate Declare Function CreatePolygonRgn Lib "gdi32" (lpPoint As POINTAPI, ByVal nCount As Long, ByVal nPolyFillMode As Long) As LongPrivate Declare Function SetWindowRgn Lib "user32" (ByVal hWnd As Long, ByVal hRgn As Long, ByVal bRedraw As Boolean) As LongPrivate Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As LongPrivate hRegion As LongPrivate Sub Command1_Click()Unload MeEnd SubPrivate Sub Form_Load() Dim p(9) As POINTAPI p(0).X = 135: p(0).Y = 66 p(1).X = 121: p(1).Y = 107 p(2).X = 80: p(2).Y = 107 p(3).X = 111: p(3).Y = 132 p(4).X = 97: p(4).Y = 175 p(5).X = 135: p(5).Y = 149 p(6).X = 172: p(6).Y = 175 p(7).X = 158: p(7).Y = 132 p(8).X = 190: p(8).Y = 107 p(9).X = 149: p(9).Y = 107 hRegion = CreatePolygonRgn(p(0), 10, ALTERNATE) Me.Picture = LoadPicture("c:\windows\setup.bmp") Me.ScaleMode = 3 Me.Move ScaleX(80, vbPixels, vbTwips), ScaleX(66, vbPixels, vbTwips), _ ScaleX(200, vbPixels, vbTwips), ScaleX(180, vbPixels, vbTwips) Command1.Move 110, 80, 40, 40 Command1.Caption = "Exit" Call SetWindowRgn(Me.hWnd, hRegion, True)End Sub 一个按钮一般制作2张图片:有热点一张,非热点一张.把图片编号,放在资源文件中,在MouseMove事件中用LoadResPicture来取.如:Image按钮(Index).Picture = LoadResPicture(100 + Index * 10 + 1, 0) [求] 求VB中各种延时方法。。 关于listview中屏蔽内容托动问题? VB,DOTNET,水晶报表8.0,打包出现的问题!! [请教]关于一个错误提示 怎样用 vb 实现类似msn在桌面的右下角消息框 请教:数据保存问题? “+19.00“ 如何成为 +19.00 这个问题没人能回答吗? 关于用SQL链接数据源 LISTVIEW控件能否禁止用户改变COLUME的宽度? sql2000装在服务器win2000上,客户端win98如何用vb实现与sql的连接 采用oledb方式 程序员考试中的浮点数转换,望各位指点 如何使动态库有效
这将使得该Window显示的范围只有在该Region之内,之外的区域全然没有办法显示请先查Mouse是否处於不规则区域内'需一个Command Button
Option Explicit
Const ALTERNATE = 1
Const WINDING = 2Private Type POINTAPI
X As Long
Y As Long
End TypePrivate Declare Function CreatePolygonRgn Lib "gdi32" (lpPoint As POINTAPI, ByVal nCount As Long, ByVal nPolyFillMode 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 Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As LongPrivate hRegion As LongPrivate Sub Command1_Click()
Unload Me
End SubPrivate Sub Form_Load()
Dim p(9) As POINTAPI
p(0).X = 135: p(0).Y = 66
p(1).X = 121: p(1).Y = 107
p(2).X = 80: p(2).Y = 107
p(3).X = 111: p(3).Y = 132
p(4).X = 97: p(4).Y = 175
p(5).X = 135: p(5).Y = 149
p(6).X = 172: p(6).Y = 175
p(7).X = 158: p(7).Y = 132
p(8).X = 190: p(8).Y = 107
p(9).X = 149: p(9).Y = 107
hRegion = CreatePolygonRgn(p(0), 10, ALTERNATE)
Me.Picture = LoadPicture("c:\windows\setup.bmp")
Me.ScaleMode = 3
Me.Move ScaleX(80, vbPixels, vbTwips), ScaleX(66, vbPixels, vbTwips), _
ScaleX(200, vbPixels, vbTwips), ScaleX(180, vbPixels, vbTwips)
Command1.Move 110, 80, 40, 40
Command1.Caption = "Exit"
Call SetWindowRgn(Me.hWnd, hRegion, True)
End Sub
如:
Image按钮(Index).Picture = LoadResPicture(100 + Index * 10 + 1, 0)