如何获取屏幕上某个点的像素值呢?
(1)获取屏幕窗体的句柄
hdc=GetDC(NULL);
(2)获取颜色值
mc=GetPixel(hdc);
(3)跟踪显示颜色值的完整代码
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
HWND hs;
hs=GetTopWindow(NULL);
HDC hdc;
hdc=GetDC(NULL);
COLORREF mc;
mc=0;
int mx,my;
TPoint mp;
::GetCursorPos(&mp);
mx=mp.x;
my=mp.y;
mc=GetPixel(
hdc, // handle of device context
mx, // x-coordinate of pixel
my // y-coordinate of pixel
);
int cc;
cc=1;
Form1->Caption=AnsiString(mc);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
Button1->Click();
}
//---------------------------------------------------------------------------
这篇博客介绍了如何使用C++通过Windows API获取屏幕上任意点的像素颜色值。通过获取屏幕窗体句柄、调用GetPixel函数,可以实现对指定坐标点像素的读取,并在界面上显示该颜色值。示例代码中包含了一个简单的按钮点击事件,用于实时获取鼠标当前位置的像素颜色。
261

被折叠的 条评论
为什么被折叠?



