第1个回答 2008-03-11
>>要在类模块里实现区域截图并保存
---------------------------------------------
你就把下面的代码放到你定义的类模块内:
Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
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
BitBlt Me.hDC, 0, 0, Screen.Width, Screen.Height, GetDC(0), 0, 0, vbSrcCopy
SavePicture Me.Image, "C:\JieTu.BMP"
-----------------------------
区域截图:
BitBlt Me.hDC, 100, 100, 400,400, GetDC(0), 0, 0, vbSrcCopy
上面的代码是实现截取以像素为单位的(100,100)-(400,400)的这部分的区域截图。
第2个回答 2008-03-13
1.即便是做成DLL,也可以用对象的
在 工程-引用(好久没有用VB6了,大概是这个位置),中添加你要用的控件。
然后在代码中写上Dim A as Object,Object就是你用的那个控件名(比如VB的文本框是TextBox等等)
然后就可以用了。
2. louisfung兄的方法比较简单易行,就是模拟PrintScreen实现抓图。
记住在执行
Call keybd_event(vbKeySnapshot, 0, 0, 0) '全屏
Call keybd_event(vbKeySnapshot, 1, 0, 0) '当前窗体
之后,使用PictureBoxFoo.Picture = Clipboard.GetData 就应该能保存图片了。
第4个回答 2008-03-11
楼主考虑下,也是调用API,模块什么的楼主可以自己思考自己的想法
Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
Call keybd_event(vbKeySnapshot, 0, 0, 0) '全屏
Call keybd_event(vbKeySnapshot, 1, 0, 0) '当前窗体