如何用picturebox扩缩背景透明的ico文件?

无·法 无·法 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
先来看段代码:
Private Sub Command1_Click()
Me.Controls.Add "VB.PictureBox", "picTmp"
Me!picTmp.AutoRedraw = True
Me!picTmp.AutoSize = True
Me!picTmp.Appearance = 0
Me!picTmp.BorderStyle = 0
' Me!picTmp.BackColor = Command1.BackColor
Me!picTmp.Width = Command1.Picture.Width * 1.1
Me!picTmp.Height = Command1.Picture.Height * 1.1

Me!picTmp.PaintPicture Command1.Picture, 0, 0, Command1.Picture.Width * 1.1, Command1.Picture.Height * 1.1

Command1.Width = Command1.Width * 1.1
Command1.Height = Command1.Height * 1.1
Set Command1.Picture = Me!picTmp.Image

Me.Controls.Remove "picTmp"
End Sub

界面上就Command1一个控件,其style设置为1,picture属性添加了一个ico文件,上面的代码就是将控件和里面的ico图标都扩大1.1倍,处理方法很简单,创建了个临时的picturebox使用其PaintPicture方法扩缩好然后给command1,这样的就达到扩缩效果了。
问题是“按钮上的图标是扩缩了,可是背景是空白,与按钮本来的颜色显得格格不入”。(csdn不让上传图了,faint。)
有个方案就是给临时创建的皮cturebox背景色设置成和Command1的一致,也就是将上面被注释掉的一行拿掉,这样是可以解决。可是如果用了部分第三方按钮,本身并没有提供backcolor这样的属性,那么就不行了,事实就是如此。
所以必须对ico扩缩时仍旧使得它背景透明,各位有什么好方法阿?
...全文

相关推荐

评论 14
收藏 已收藏
分享
返回顶部
无·法
VB基础类 7,788 成员 197,583 内容