VB用什么API实现Picture1.Cls这个方法同样的功能?
如上图,在UserControl里面的代码,放大、缩小图像我直接用Pic.Cls,然后用StretchBlt画,都正常没问题。但是在模块里的回调函数PhotoCtrlPr...
如上图,在UserControl里面的代码,放大、缩小图像我直接用Pic.Cls,然后用StretchBlt画,都正常没问题。
但是在模块里的回调函数PhotoCtrlProc里面,我直接用StretchBlt画,放大图像没问题,缩小图像问题就来了,没Cls就会出现残影(在UserControl里面缩小图像,先Pic.Cls,然后再用StretchBlt画就不会有残影)。
所以请教在模块中用什么API,可以实现Cls这个方法同样的功能呢?
因字数超出限制,我只能截图了。
pic不是form中的,是UserControl中的。Cls的问题已用rectangle 函数解决,现在的问题是用StretchBlt绘制了后,wm_paint后图像又恢复成没绘制前的状态(尺寸和大小)
现在想问的是:用StretchBlt绘制了后,怎样让它绘制的图像保持下来(持续输出?) 展开
但是在模块里的回调函数PhotoCtrlProc里面,我直接用StretchBlt画,放大图像没问题,缩小图像问题就来了,没Cls就会出现残影(在UserControl里面缩小图像,先Pic.Cls,然后再用StretchBlt画就不会有残影)。
所以请教在模块中用什么API,可以实现Cls这个方法同样的功能呢?
因字数超出限制,我只能截图了。
pic不是form中的,是UserControl中的。Cls的问题已用rectangle 函数解决,现在的问题是用StretchBlt绘制了后,wm_paint后图像又恢复成没绘制前的状态(尺寸和大小)
现在想问的是:用StretchBlt绘制了后,怎样让它绘制的图像保持下来(持续输出?) 展开
3个回答
展开全部
你可以将PictureBox作为参数传到模块里,这样就可以在模块里使用Cls方法了。
更多追问追答
追问
试过了,不行。比如Public pBox as PictureBox,然后Set pBox=Pic
在模块里pBox.Cls然后用StretchBlt画
结果是放大、缩小图像,图像闪了一下就没了
追答
模块中代码改成这样试试:
Public Function PhotoCtrlProc(ByVal pic As PictureBox, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
............
............
pic.Cls
StretchBlt pic.hDC, xx, yy, rW, rH, memDC, 0, 0, w, h, vbSrcCopy
End Function
调用的时候:
PhotoCtrlProc Picture1, Msg, wParam, lParam
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在模块里你可以这样:
Form1.pic.Cls
也就是加上窗体名即可调用
Form1.pic.Cls
也就是加上窗体名即可调用
追问
现在有个新问题,请问:用 StretchBlt(imgHDC,x,y,rw,rh,memDC,0,0,w,h,vbSrcCopy) 绘制在imgHDC上的图像,怎样imgHDC上的图像保持持续输出?
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询