让所有的autoredraw=true
Pic3.Width = Picture1.ScaleWidth
Pic3.Height = Picture1.ScaleHeight
BitBlt Pic3.hdc, 0, 0, Picture1.ScaleWidth, Picture1.ScaleHeight, Picture1.hdc, 0, 0, vbSrcCopy
SavePicture Pic3.Image, "d:\1.bmp"
再试试
Pic3.Width = Picture1.ScaleWidth
Pic3.Height = Picture1.ScaleHeight
BitBlt Pic3.hdc, 0, 0, Picture1.ScaleWidth, Picture1.ScaleHeight, Picture1.hdc, 0, 0, vbSrcCopy
SavePicture Pic3.Image, "d:\1.bmp"
再试试
Pic3.Height = Picture1.ScaleHeight
Pic3.AutoRedraw=True
BitBlt Pic3.hdc, 0, 0, Picture1.ScaleWidth, Picture1.ScaleHeight, Picture1.hdc, 0, 0, vbSrcCopy
Pic3.AutoRedraw=False
DoEvents
SavePicture Pic3.Image, "d:\1.bmp"AutoRedraw 在BitBlt之前要设为TRUE,之后好像要设回FALSE,而致于我加的DoEvents是为了让系统有足够的时间来画Picture,可以试一下,真的不行其实
还可以改一下,就是把源DC改为Form的DC,然后截取Picture1 的位置,理论上
讲是可以的。
哈哈,给分1