本文目录一览:
- 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++的知识.