(VB)如何取得屏幕上某一点的颜色值

如题,请高手帮忙我用vb写的程序~希望能给出代码... 如题,请高手帮忙
我用vb写的程序~
希望能给出代码
展开
 我来答
百度网友a4f784035
2005-11-30 · TA获得超过118个赞
知道小有建树答主
回答量:219
采纳率:0%
帮助的人:0
展开全部
楼上照本宣科,错误
简单,先用WindowsFromPoint获得窗口HWND
再用GetDC获得hDC
再用GetPixel即可。

我给出一个过程,该过程完成将窗口背景色改为鼠标指向的颜色:

On Error Resume Next
Dim p As POINTAPI
GetCursorPos p
Dim h As Long, dc As Long
h = WindowFromPoint(p.x, p.y)
ScreenToClient h, p
dc = GetDC(h)
Me.BackColor = GetPixel(dc, p.x, p.y)

函数声明如下:
Private Declare Function WindowFromPoint Lib "user32" (ByVal xPoint As Long, ByVal yPoint As Long) As Long
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 GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
Private Declare Function ScreenToClient Lib "user32" (ByVal hwnd As Long, lpPoint As POINTAPI) As Long

Private Type POINTAPI
x As Long
y As Long
End Type
firedragon8
2005-11-29 · TA获得超过249个赞
知道小有建树答主
回答量:592
采纳率:0%
帮助的人:150万
展开全部
用API函数:
Private Declare Function SetSysColors Lib "user32" (ByVal nChanges As Long, lpSysColor As Long, lpColorValues As Long) As Long
Private Declare Function GetSysColor Lib "user32" (ByVal nIndex As Long) As Long
Const COLOR_SCROLLBAR = 0
Const COLOR_BACKGROUND = 1 Const COLOR_ACTIVECAPTION = 2 'Caption of Active Window
Const COLOR_INACTIVECAPTION = 3 'Caption of Inactive window
Const COLOR_MENU = 4 'Menu
Const COLOR_WINDOW = 5 'window 背景颜色
Const COLOR_WINDOWFRAME = 6 'Window frame
Const COLOR_MENUTEXT = 7 'Window Text
Const COLOR_WINDOWTEXT = 8 '3D dark shadow (Win95)
Const COLOR_CAPTIONTEXT = 9 'Text in window caption
Const COLOR_ACTIVEBORDER = 10 'Border of active window
Const COLOR_INACTIVEBORDER = 11 'Border of inactive window
Const COLOR_APPWORKSPACE = 12 'Background of MDI desktop
Const COLOR_HIGHLIGHT = 13 'Selected item background
Const COLOR_HIGHLIGHTTEXT = 14 'Selected menu item
Const COLOR_BTNFACE = 15 'Button
Const COLOR_BTNSHADOW = 16 '3D shading of button
Const COLOR_GRAYTEXT = 17 'Grey text, of zero if dithering is used.
Const COLOR_BTNTEXT = 18 'Button text
Const COLOR_INACTIVECAPTIONTEXT = 19 'Text of inactive window
Const COLOR_BTNHIGHLIGHT = 20 ' 按钮颜色
Private Sub Form_Load()

col& = GetSysColor(COLOR_ACTIVECAPTION)
'把标题改为红色
t& = SetSysColors(1, COLOR_ACTIVECAPTION, RGB(255, 0, 0))
MsgBox "The old title bar color was" + Str$(col&) + " and is now" + Str$(GetSysColor(COLOR_ACTIVECAPTION))
End Sub
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式