屏幕颜色任意取 陈春建 2001年 10期 春节,同朋友聊天时,感叹别人的网页做得如何漂亮,尤其某些网页的颜色更是绚丽多彩,但苦于自己总是调不出这样的颜色。于是,我萌发了用VB编写一个可提取屏幕上任意点颜色的想法。本程序主要用了一些Windows API函数。你想知道吗?Follow me!    1.首先新建一个工程;    2.单击“工程→添加模块”;    3.在模块中添假如下代码:    Option Explicit    Type POINTAPI '定义一个坐标变量    x As Long    y As Long    End Type    4.单击“外接程序→API浏览器”,添加以下三个API函数:    Declare Function GetCursorPos Lib "user32"(lpPoint As POINTAPI)As Long    Declare Function GetDC Lib "user32"(ByVal hwnd As Long)As Long    Declare Function GetPixel Lib "gdi32"(ByVal hdc As Long,ByVal x As Long,ByVal y As Long)As Long    GetCursorPos:获取鼠标指针的当前位置;    GetDC:获取指定窗口的设备场景,若取GetDC(0),则要获取整个窗体的DC。    GetPixel:在指定的设备场景中取得一个像素的RGB值。    将以上三个API函数复制到模块中。    5.在窗体中添加1个计时器控件(Timer)、4个标签控件(Label)、1个图片框(Picture)和命令按纽(Command),如^10020502a^所示:    程序代码如下:    Option Explicit    Dim z As POINTAPI    Private Sub Command1_Click()    End    End Sub    Private Sub Timer1_Timer()    Dim a,b,c,d As Long    GetCursorPos z '得到坐标    Label1="点的位置:("&zx&":"&zy&")" '得到X坐标    Label2="y:"&zy '得到Y坐标    a=GetPixel(GetDC(0),zx,zy) '得到当前点的颜色    b=a And &HFF '分离出红色    c=(a And 65280)\256 '分离出绿色    d=(a And &HFF0000)\65536 '分离出蓝色    Label2.Caption="点的RGB("&b&","&c&","&d&")"    Label3.Caption="16进制色:0x"&Hex(a)    Label4.Caption="网页颜色:#"&Hex(a)    Picture1.BackColor=RGB(b,c,d)    End Sub    单击运行(F5),就可看见结果。怎么样,很简单吧,还不赶快动手试一试?有问题请与我联系:ccj76@163.net。