要做一个屏幕取色的小工具。

isfrog 2009-10-15 10:47:22
窗口上放置一个CStatic控件,鼠标在屏幕上任意点移动的时候都可以取得当前点的颜色,然后根据此颜色重绘CStatic控件(背景)。
怎么样才能强制重绘呢?
可不可以只重绘CStatic区域而不是整个对话框?

初学者在练习。。小弟先谢谢了。 :)
...全文
97 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
isfrog 2009-10-16
  • 打赏
  • 举报
回复
第二个问题解决了,第一个问题搜索不到答案呀
都不知道用什么关键字才好
isfrog 2009-10-16
  • 打赏
  • 举报
回复
谢谢大家,现在的问题是:
1,鼠标移动只能响应本对话框客户区,如何响应整个屏幕的鼠标移动呢?
2,重绘CStatic后只有文字背景变为鼠标指针下的颜色,而不是整个CStatic控件的背景。是什么原因?
isfrog 2009-10-16
  • 打赏
  • 举报
回复
to:yuhudie203
你真是太聪明了,聪明的不像话呀~~~~
yuhudie203 2009-10-16
  • 打赏
  • 举报
回复
颜色提取器源代码有兴趣可以看看
isfrog 2009-10-16
  • 打赏
  • 举报
回复
to:aidy22
这个我也正在看,功能是一样的
但是他用的是buttondown实现的,我现在越来越想知道怎么捕获移动,而且是随时的
yuhudie203 2009-10-16
  • 打赏
  • 举报
回复
刚好写过一个 这个是Ontimer里面的实现代码

CPoint pt;
GetCursorPos(&pt);

HDC hDC = ::GetDC(NULL);
COLORREF clr = ::GetPixel(hDC, pt.x, pt.y);

CString ClrText;
ClrText.Format("%d",GetRValue(clr));
m_EditRed.SetWindowText(ClrText);
ClrText.Format("%d",GetGValue(clr));
m_EditGreen.SetWindowText(ClrText);
ClrText.Format("%d",GetBValue(clr));
m_Editblue.SetWindowText(ClrText);

::ReleaseDC(NULL, hDC);
aidy22 2009-10-16
  • 打赏
  • 举报
回复
http://www.codefans.net/soft/5809.shtml
可以看这个参考。
isfrog 2009-10-16
  • 打赏
  • 举报
回复
问题是:
窗口失去焦点后依然能响应全屏幕的鼠标移动消息。。。
完全没有思路。
A1erX 2009-10-15
  • 打赏
  • 举报
回复
Static控件比较特殊,要改名。比如IDS_STATIC1
Hiiishe 2009-10-15
  • 打赏
  • 举报
回复
把他的ID改掉
为ID_STATIC的控件是不能加变量的
la_feng 2009-10-15
  • 打赏
  • 举报
回复
HWND GetDlgItem(
HWND hDlg,
int nIDDlgItem
);
isfrog 2009-10-15
  • 打赏
  • 举报
回复
刚才弄了一下,为什么不能为CStatic添加变量呢?
怎样才能取得它的句柄?

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧