导航
  • 主页
  • Windows SDK/API
  • 基础类
  • ActiveX
  • 数据库及相关技术
  • 网络及通讯开发
  • VCL组件使用和开发
  • 问答

如何获得屏幕上某点的颜色.

CPerlAsm_Lx 2004-01-22 06:53:26
如何获得屏幕上某点的颜色.
...全文
25 点赞 收藏 8
写回复
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
goneaway1981 2004-01-23
回复人: cupidvenus(小鱼儿) ( ) 信誉:100 2004-01-22 22:54:00 得分:0


GetCursorPos和GetPixel


回复
lovebcb 2004-01-23
改了它:
Panel1->Color=TColor(r);
回复
dclman 2004-01-23
哈哈``` 好!! 收了``` 嘿嘿~~
回复
cupidvenus 2004-01-22
GetCursorPos和GetPixel
回复
lovebcb 2004-01-22
//---------------------------------------------------------------------------
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
TPoint p;
HDC d;
DWord r;
GetCursorPos(&p);
d=GetDC(0);
r=GetPixel(d,p.x,p.y);
Panel1->Color=r;
Edit1->Text=IntToStr(GetRValue(r));
Edit2->Text=IntToStr(GetGValue(r));
Edit3->Text=IntToStr(GetBValue(r));
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{
Timer1->Enabled=True;
Button1->Enabled=False;
}
//---------------------------------------------------------------------------

void __fastcall TForm1::FormCreate(TObject *Sender)
{

hotkeyid=GlobalAddAtom("UserDefined")-0xC000;
RegisterHotKey(NULL,hotkeyid,MOD_ALT,26);

}
//---------------------------------------------------------------------------



void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)
{
UnregisterHotKey(NULL,hotkeyid);
DeleteAtom(hotkeyid);
}
//---------------------------------------------------------------------------

void TForm1::WMHotKey(TWMHotKey Msg)
{
if (Msg.HotKey==hotkeyid)
{
Msg.Result=1;
Timer1->Enabled=True;
Button1->Enabled=False;
}
}


新年快乐!
回复
lovebcb 2004-01-22
看个例子,
三个Edit,1个button,1个timer(设false),1个panel

点button后,三个edit中分别显示RGB的值,panel显示颜色
回复
CPerlAsm_Lx 2004-01-22
那是在color dialog里用的吧.我是说直接得到屏幕任何一点的颜色.
回复
tip9914 2004-01-22
这个类中应该有GetColor一类的函数呀
回复
发动态
发帖子
C++ Builder
创建于2007-08-02

1.3w+

社区成员

C++ Builder相关内容讨论区
申请成为版主
社区公告
暂无公告