本文目錄一覽:
- 1、c語言 判斷顏色函數
- 2、C語言怎麼儲存屏幕所有點的顏色值
- 3、C語言函數形參的一個怪問題
- 4、關於C語言,setbkclolor函數的問題!!
- 5、C語言寫的SDK程序中COLORREF類型數組比較的問題!!
- 6、C語言中COLORREF類型數組賦初值的簡單問題!!
c語言 判斷顏色函數
沒有簡單的方法。
視窗程序,只能控制自己建的窗和自己建的窗內的滑鼠位置。要取得自己建的窗外的窗的信息,要寫動態鏈接庫和運行動態鏈接庫,要調用動態鏈接庫。
API 函數
COLORREF GetPixel(HDC hdc, int nXPos, int nYPos);
可以得到屏膜上某個點的顏色(頭文件 Wingdi.h)
還有辦法就是 模擬Print-Screen:
keybd_event(VK_SNAPSHOT,0x2C,0,0);
keybd_event(VK_SNAPSHOT,0x2C,KEYEVENTF_KEYUP,0);
取得全屏幕 BITMAP,從 區域 幾何定義,找到第幾行第幾列的圖素,得顏色。
C語言怎麼儲存屏幕所有點的顏色值
關鍵代碼實現:
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
C語言函數形參的一個怪問題
VC6嗎?Rebuild或者關閉VC6重新打開項目,然後Rebuild一下看看。
VC6經常出現這種現象,因為緩存的問題,導致調試時提示不正確,實際上程序是對的。
如果是VC6,還有個辦法,關閉工程,刪除*.ncb文件,重啟項目,重新編譯,基本就OK。
關於C語言,setbkclolor函數的問題!!
用指定的顏色值來設置當前的背景色
COLORREF SetBkColor( HDC hdc, COLORREF crColor );
hdc: 設置上下文句柄
crColor: 標識新的背景顏色值。如果想要獲得COLORREF的值,請使用RGB宏。
C語言寫的SDK程序中COLORREF類型數組比較的問題!!
COLORREF X[3];
COLORREF Y[3];
memcmp((char*)X,(char*)Y,sizeof(COLORREF)*3);
C語言中COLORREF類型數組賦初值的簡單問題!!
第一種正確:相當於a[0]初始化為0,後面的都自動初始化為0, 編譯器的實現很簡單,就是生成一條rep stos的指令,相當於有編譯器完成初始化.
第二種正確:數組的每一個元素都進行賦值,相當於有程序來完成初始化.
歡迎來0x30 百度貼吧,分享交流更多C/C++的知識.
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/302876.html