程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> VC >> VC++ >> 如何獲取屏幕上各顏色的紅、綠、藍值

如何獲取屏幕上各顏色的紅、綠、藍值

編輯:VC++

作者:徐景周
版權所有:徐景周
轉載請與作者聯系

  在桌面上運行各種程序中,有很多色彩十分靓麗,我們有時也想使用它們的顏色,但苦於沒有源碼,所以很難准確知道它們的R、G、B顏色值。於是便產生了很多拾取屏幕顏色的工具,你想知道它們是怎麼用程序實現的麼?下面我就拿我用VC6.0做的一個屏幕顏色拾取器的實例代碼來告訴您,實例程序運行後的界面如下:

基本構成思想:

  原理很簡單,只需要簡要的三步。既:獲取屏幕DC、得到當前鼠標所在的像素值、分解出像素值中的紅、綠、藍三色既可,很簡單吧!

關鍵代碼實現:

1、獲取屏幕DC

HDC hDC = ::GetDC(NULL);   //獲取屏幕DC


2、獲取當前鼠標位置像素值

CPoint pt;
GetCursorPos(&pt);       //得到當前鼠標所在位置

COLORREF clr = ::GetPixel(hDC, pt.x, pt.y); //獲取當前鼠標點像素值


3、分解出像素點中的紅、綠、藍顏色值

CString ClrText;
ClrText.Format("%d",GetRValue(clr));     //分解出紅色值
ClrText.Format("%d",GetGValue(clr)); //分解出綠色值
ClrText.Format("%d",GetBValue(clr)); //分解出藍色值

::ReleaseDC(NULL, hDC); //釋放屏幕DC

聯系方式:
地址:陝西省西安市勞動路2號院六單元
郵編:710082
作者EMAIL:[email protected]
未來工作室(Future Studio)

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved