| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4578 人关注过本帖
标题:picturebox控件载入背景透明图片的问题
只看楼主 加入收藏
lqfhzj
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2008-7-2
收藏
 问题点数:0 回复次数:2 
picturebox控件载入背景透明图片的问题
我想在一个pictrue1控件嵌入一张背景透明的图片。比如自己找了一些资料。试着做了2张图,一张原图,背景黑色,一张覆盖图,前景色黑色,背景色白色,然后把这2张图片分别放在pictrue2和pictrue3里。然后用一个按钮点击事件实现pictrue1控件嵌入背景透明的图片功能。
但是现在我发现有几个问题,
1、就是虽然按钮点击事件实现pictrue1控件嵌入背景透明的图片功能,但是当外面其他的窗口遮住了pictrue1控件或窗口隐藏在打开后,里面的图片就被擦掉了,没有了,就好像是没有重绘效果。请问该怎么实现窗口无论如何移动隐藏,pictrue1控件图片一直存在的功能?
2、如果将pictrue2和pictrue3的可见属性设为false后或者把这两个控件移到窗口外面后,就算点击按钮事件也完成不了pictrue1控件嵌入背景透明的图片功能。实际编程中,肯定是要将pictrue2和pictrue3隐藏起来的。请问该怎么解决这个问题?
3、我不希望只有触发了按钮事件后,才可以载入图片。我希望程序一运行就自动将图片载入pictrue1控件里。
不知道各位有没有听明白我的意思。
下面是源程序。不知道是不是哪里出问题了。希望各位能指导一下。期待您的回复!

Private Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, ByVal X As Long, ByVal Y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long


Private Sub Command2_Click()
Dim lrtn As Integer
 lrtn = BitBlt(Picture1.hDC, 0, 0, Picture2.ScaleWidth, Picture2.ScaleHeight, Picture2.hDC, 0, 0, vbSrcAnd)
 lrtn = BitBlt(Picture1.hDC, 0, 0, Picture3.ScaleWidth, Picture3.ScaleHeight, Picture3.hDC, 0, 0, vbSrcPaint)

End Sub

Private Sub Form_Load()
Picture2.Picture = LoadPicture("C:\Documents and Settings\fang\桌面\3.bmp")
Picture3.Picture = LoadPicture("C:\Documents and Settings\fang\桌面\2.bmp")
End Sub
搜索更多相关主题的帖子: 控件 picturebox 载入 按钮 窗口 
2008-07-02 15:15
Joforn
Rank: 6Rank: 6
等 级:贵宾
威 望:23
帖 子:1242
专家分:122
注 册:2007-1-2
收藏
得分:0 
Private Sub Form_Load()
  Dim lrtn As Integer
  
  Picture1.AutoRedraw = True
  Picture2.AutoRedraw = True
  Picture3.AutoRedraw = True
  Picture2.Visible = False
  Picture3.Visible = False
  Picture2.Picture = LoadPicture("C:\Documents and Settings\fang\桌面\3.bmp")
  Picture3.Picture = LoadPicture("C:\Documents and Settings\fang\桌面\2.bmp")
  
  lrtn = BitBlt(Picture1.hDC, 0, 0, Picture2.ScaleWidth, Picture2.ScaleHeight, Picture2.hDC, 0, 0, vbSrcAnd)
  lrtn = BitBlt(Picture1.hDC, 0, 0, Picture3.ScaleWidth, Picture3.ScaleHeight, Picture3.hDC, 0, 0, vbSrcPaint)
End Sub

VB QQ群:47715789
2008-07-03 09:21
lqfhzj
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2008-7-2
收藏
得分:0 
非常感谢楼上的热心人!!!
问题解决了!
2008-07-03 09:48
快速回复:picturebox控件载入背景透明图片的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.037073 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved