//获取窗体DC
CDC *pDC = GetDC();
//获取颜色值
COLORREF cr = pDC->GetPixel(point);
//提取RGB分量
m_nR = GetRValue(cr);//R值
m_nG = GetGValue(cr);//G值
m_nB = GetBValue(cr);//B值
GetPixel取窗体颜色值 !!!!
GetCursorPos 360百科
最后应该是要释放掉 ReleaseDC
完整Delphi实例:
procedure TForm1.GetColor(hdl: THandle);
var
dc: HDC;
Pt: TPoint;
cr: COLORREF;
R, G, B: Byte;
rlt: Integer;
begin
//hdl=0表示:得到整个屏幕的显示设备上下文环境的句柄
dc:= GetDC(hdl);
//检取光标的位置,以屏幕坐标表示
GetCursorPos(Pt);
//用GetDeviceCaps来判断设备是否支持GetPixel
//检索指定坐标点的像素的RGB颜色值
cr:= GetPixel(dc, Pt.X, Pt.Y);
if cr = CLR_INVALID then //CLR_INVALID
mmo1.Lines.Add('指定的像素点在当前剪辑区之外')
else
begin
R:= GetRValue(cr);//R值
G:= GetGValue(cr);//G值
B:= GetBValue(cr);//B值
mmo1.Lines.Add('R:'+IntToStr(R)+';G:'+IntToStr(G)+';B:'+IntToStr(B));
rlt:= ReleaseDC(Handle, dc);
end;
end;