如:
1、把屏幕100,100---200,200区域的颜色值读到数组中
我用的是Dim CF(1 To 100, 1 To 50) As ColorConstants数组,不知道用什么更好更快些
2、再把数组的内容写到picture中(这步不知道怎么做了)?
1、把屏幕100,100---200,200区域的颜色值读到数组中
我用的是Dim CF(1 To 100, 1 To 50) As ColorConstants数组,不知道用什么更好更快些
2、再把数组的内容写到picture中(这步不知道怎么做了)?
解决方案 »
- 两个结构完全相同的数据库ACCESS
- vb,ado,sql2000 一般网络错误
- 报表统计问题!谢谢大家的帮助!!!
- 欢迎各位高手指点一下VB有反编译工具吗?
- “实时错误:'91' 对象变量或with块变量未设置” 请问这是怎么回事?应该怎么办??
- treeview控件中节点上鼠标右键点击的事件如何处理,急?!!
- 请问我用VB 编写C/S模式的网吧管理系统,我要在客户端关闭的时候向服务器发送一个数据,其代码应该写在甚么位置?
- 求教:在vbscript中调用API的语句是什么?
- 关于类的困惑(一个连接的传递错误)
- 紧急求助,请教各位如何能修复已经损坏的Access数据库,我使用Access97无法修复!
- 高分求教
- 如何用MAPI控件编写邮件收发程序?
picCopy.AutoRedraw = True
hdc = GetDC(0)
sx = Screen.Width / Screen.TwipsPerPixelX
sy = Screen.Height / Screen.TwipsPerPixelY
If SetSx = 0 Or SetSy = 0 Then SetSx = sx: SetSy = sy
picCopy.Width = SetSx * Screen.TwipsPerPixelX
picCopy.Height = SetSy * Screen.TwipsPerPixelY
SetStretchBltMode picCopy.hdc, 3
StretchBlt picCopy.hdc, 0, 0, SetSx, SetSy, hdc, 0, 0, sx, sy, vbSrcCopy 'ËõС
ReleaseDC 0, hdc
picCopy.Picture = picCopy.Image
picCopy.Width = 1
picCopy.Height = 1
picCopy.AutoRedraw = False
Get_Desktop = True
End Function
GetDC VB声明
Declare Function GetDC Lib "user32" Alias "GetDC" (ByVal hwnd As Long) As Long
说明
获取指定窗口的设备场景
返回值
Long,指定窗口的设备场景句柄,出错则为0
参数表
参数 类型及说明
hwnd Long,将获取其设备场景的窗口的句柄。若为0,则要获取整个屏幕的DC
注解
若窗口所属类具有CS_OWNDC, CS_CLASSDC 或 CS_PARENTDC样式,则获取的设备场景属窗口或类专有。vb的窗体和图片框控件也是这种情况,它用该函数取得的结果和控件的hdc属性相同(在autoredraw为FALSE时)。您无须考虑取回的窗体或图片框控件设备场景的默认状态,特别是绘图对象。另外,默认状态随着窗体和控件autoredraw属性的设置而不同。在设备场景释放前您必须回复其状态为初始值。对于没有CS_OWNDC, CS_CLASSDC 或 CS_PARENTDC样式的窗口的设备场景,可从通用windows缓存中获取,其状态为默认值。缓存中可用设备场景数量是有限的,因此只要可能就释放设备场景
用本函数获取的设备场景一定要用ReleaseDC函数释放,不能用DeleteDC
ReleaseDC VB声明
Declare Function ReleaseDC Lib "user32" Alias "ReleaseDC" (ByVal hwnd As Long, ByVal hdc As Long) As Long
说明
释放由调用GetDC或GetWindowDC函数获取的指定设备场景。它对类或私有设备场景无效(但这样的调用不会造成损害)
返回值
Long,执行成功为1,否则为0
参数表
参数 类型及说明
hwnd Long,要释放的设备场景相关的窗口句柄
hdc Long,要释放的设备场景句柄
注解
对那些用CreateDC一类的DC创建函数生成的设备场景,不要用本函数
BitBlt VB声明
Declare Function BitBlt Lib "gdi32" Alias "BitBlt" (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
说明
将一幅位图从一个设备场景复制到另一个。源和目标DC相互间必须兼容
返回值
Long,非零表示成功,零表示失败。会设置GetLastError
参数表
参数 类型及说明
hDestDC Long,目标设备场景
x,y Long,对目标DC中目标矩形左上角位置进行描述的那个点。用目标DC的逻辑坐标表示
nWidth,nHeight Long,欲传输图象的宽度和高度
hSrcDC Long,源设备场景。如光栅运算未指定源,则应设为0
xSrc,ySrc Long,对源DC中源矩形左上角位置进行描述的那个点。用源DC的逻辑坐标表示
dwRop Long,传输过程要执行的光栅运算
注解
在NT环境下,如在一次世界传输中要求在源设备场景中进行剪切或旋转处理,这个函数的执行会失败
如目标和源DC的映射关系要求矩形中像素的大小必须在传输过程中改变,那么这个函数会根据需要自动伸缩、旋转、折叠、或切断,以便完成最终的传输过程
2、也有可以把数组的内容写到绘图场景中的,我用过的!
Option Explicit
Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function GetPixel Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long) As Long
Private Declare Function SetPixel Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal crColor As Long) As LongPrivate Sub Command2_Click()
Dim CFF As ColorConstantsDim i As Integer
Dim j As IntegerDim x As Integer
Dim y As Integer
x = Val(Text1.Text)
y = Val(Text2.Text)
For i = 1 To 100
For j = 1 To 50
CFF = GetPixel(GetDC(0), i, j)
Call SetPixel(Me.hdc, i, j, CFF)
DoEvents
Next
Next
End Sub