POINT po;
po.x=100;
po.y=100;
HDC dc=::GetDC(::GetDesktopWindow());
if (CLR_INVALID=::GetPixel(dc,10,10))
MessageBox("我操 值是CLR_INVALID");
COLORREF MyColor=::GetPixel(dc,10,10);
CString StrInfo;
StrInfo.Format("当前点的颜色值为:RGB(%d,%d,%d)",GetRValue(MyColor),
GetGValue(MyColor),GetBValue(MyColor));
MessageBox(StrInfo,"信息提示",MB_OK);每一次运行点击这个按钮就输出“我操 值是CLR_INVALID” 这是为什么???????????????
解决方案 »
- 用互斥对象保证一个实例为什么总是不行?
- 结束前一个程序实例
- 用mfc中的CHttpFile类获取网页中的图片
- 在基于dialog的项目中为什么为添加上去的dialog新建的类不能调用??????????????
- 十万火急!高手帮帮忙!关于窗口之间的消息传递!
- 如果用串口通信速率来计时,准确吗?
- 求教:dll 中如何显示有复杂控件 (如Chart) 的对话框 ? ? 在线等待......马上结帖
- 请问如何在基于对话匡的程序画出一块区域来画图啊?
- 我是一个新手 请问一个问题~希望告诉我错在那了 谢谢
- Opencv读取mP4格式文件?
- 两个运行命令的问题,如何用Notepad打开文件,立即返回不等待?
- 关于GetSystemTime的问题
MessageBox("我操 值是CLR_INVALID");
MessageBox("我操 值是CLR_INVALID");你这个MessageBox太流氓了
这个问题我解决了,
可惜又来了非常郁闷的问题。
请大虾们看看!这是我写的一个类 在HEAD.H中class GetColor
{
public:
COLORREF getcolor(HWND h,POINT poop)
{
HDC hdc= ::GetDC(h);
COLORREF mycolor= ::GetPixel(hdc,poop.x,poop.y);
::ReleaseDC(h,hdc);
return mycolor;
}
COLORREF getcolor(HWND h,long x,long y)
{
HDC hdc= ::GetDC(h);
COLORREF mycolor= ::GetPixel(hdc,x,y);
::ReleaseDC(h,hdc);
return mycolor;
}
};
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
#include "head.h"
GetColor cc1;
COLORREF MyColor1=cc1.getcolor(hwnd,68,187);
GetColor cc2;
COLORREF MyColor2=cc2.getcolor(hwnd,68,188);
if (MyColor1 == MyColor2)
MessageBox("一样");结果奇怪了, 结果不一样。谁能解释一下为什么??
vb的结果是一样的。
请高手们指点指点。
取得的是桌面窗口句柄,但是其内容包含其上覆盖的窗口,所以,相等不相等取决于你运行程序时电脑的情况。
别人都用HBITMAP。可惜不会, 正在学习中,
谁能赐教赐教。感激不尽