在桌面上執行各種程式中,有很多色彩十分靚麗,我們有時也想使用它們的顏色,但苦於沒有原始碼,所以很難準確知道它們的r、g、b顏色值。於是便產生了很多拾取螢幕顏色的工具,你想知道它們是怎麼用程式實現的麼?下面我就拿我用vc6.0做的乙個螢幕顏色拾取器的例項代ma
來告訴您,例項程式執行後的介面如下:
基本構成思想:
原理很簡單,只需要簡要的三步。既:獲取螢幕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
取出螢幕上某個畫素的顏色值
為了取出螢幕上某點畫素的顏色,常常使用gdi函式getpixel,其原形如下 colorref getpixel hdchdc handle to dc intnxpos x coordinate of pixel intnypos y coordinate of pixel getpixel 的效...
C 獲取螢幕滑鼠所指點的顏色
有時候要獲取螢幕某一點的座標顏色值,可以如下實現 在vs2012中建立乙個c 的windows視窗應用程式,然後在form上新增picturebox和button兩個控制項,並加入以下 需要這個命名空間 using system.runtime.interopservices dllimport u...
獲取螢幕上正在顯示的activity
用過activitymanager的童鞋估計都知道,可以從activitymanager裡面可以獲取到當前執行的所有任務,所有程序和所有服務,這是任務管理器的核心。那麼,從裡面我們可以發掘點什麼出來嗎?仔細看getrunningtasks的文件,裡面說獲取的是系統中 running 的所有task,...