一个超简易的拾色器程序

本文介绍了一个简易的拾色器程序实现,包括创建置顶窗口、调整窗口样式、设置定时器以及通过WM_TIMER消息获取并显示屏幕颜色值。程序采用Win32API和GCC编译,提供源代码下载。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  那日突然心血来潮。。。想写一个简单的拾色器。

  最后出来的东西比较简易,因为感觉这东西也没必要做得怎么好看,实用就行了。源码和程序的下载链接:http://download.youkuaiyun.com/source/2402476

  刚开始打算做一个MFC对话框程序,通过响应WM_MOUSEMOVE来完成,无果。使用过SetCapture、HOOK等方法均没尝试成功。后来只好退而求其次,使用一个时间超短的定时器来做了这个活儿。使用Win32 API方式,GCC编译。

  运行效果如下图(窗口可以无焦点,可以对屏幕上任意点取色):

 

  首先找到一个最简单的典型Win32窗口程序,然后在里面小做修改,就可以得到本程序。

      1、为了保证能一直看得到取色结果,要将窗口置顶,故创建窗口时采用CreateWindowEx函数,第一个参数设为WS_EX_TOPMOST来将窗口置顶。

  2、窗口的显示信息大致一定,不需要改变窗口大小,故将最大化框去掉,方法为窗口风格参数写法为WS_OVERLAPPEDWINDOW & (~WS_MAXIMIZEBOX)。

  3、在WM_CREATE消息中SetTimer(hwnd, 1, 10, NULL),即刷新时间10毫秒。在WM_DESTROY中KillTimer。

  4、在WM_TIMER中利用GetCursorPos取得鼠标的屏幕坐标,用屏幕DC为参数来GetPixel获取像素点,然后重绘客户区,在客户区内显示分解出来的黄绿蓝三色。

  主要做的工作也就这几点了,上源代码:

  

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值