如何才能判断屏幕上任意一点的像素颜色
编号:QA002814
建立日期: 2000年4月5日 最后修改日期:2003年11月30日
所属类别:
Q
arivd:
操作系统: windows 98
编程工具: vb6
问题: 如何才能判断当前屏幕上任意一点(不受句柄的影响)的像素颜色?
A回答:
这要借助API函数。先使用:
h = CreateDC("DISPLAY", vbNullString, 0, 0)
得到一个hDC,实际就是整个屏幕的hDC。然后利用GetPixel(h, x, y)就可以得到任意点(x, y)的颜色值。
Private Declare Function CreateDC Lib "gdi32" Alias "CreateDCA" _
(ByVal lpDriverName As String, ByVal lpDeviceName As String, _
ByVal lpOutput As String, ByVal lpInitData As Any) As Long
Private Declare Function DeleteDC Lib "gdi32" _
(ByVal hdc 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 Sub Command1_Click()
Dim nDC As Long
OldX = Screen.Width / Screen.TwipsPerPixelX
OldY = Screen.Height / Screen.TwipsPerPixelY
nDC = CreateDC("DISPLAY", vbNullString, vbNullString, ByVal 0&)
Me.BackColor = GetPixel(nDC, 0, 0)
DeleteDC nDC
End Sub
此问题由李海回答。
附加关键字:编程, 源程序, programming, source code, Visual Basic, VB, 图形、图象, picture, graph, image, draw。
| |
|
|
| |
|
|