类似Dreamweaver的颜色选择器

2016-01-29 11:59 119 1 收藏

类似Dreamweaver的颜色选择器,类似Dreamweaver的颜色选择器

【 tulaoshi.com - C语言心得技巧 】


类似Dreamweaver的颜色选择器

作者:浙江省温岭市电信局 王骏

一、前言
用过Dreamweaver的朋友一定对它的颜色选择器留下深刻的印象,因为它确实相当好用,其中的一项比较实用的功能是可以选取屏幕上任意一点的颜色。笔者按此思路封装了一个称为CColorPicker的类实现了类似的功能,并修正了Dreamweaver颜色选择器将屏幕上选取的颜色作近似处理的缺点。本文详细介绍了CColorPicker类的使用方法,并提供示例工程供读者参考。

下载示例工程 17.2K

下图便是示例代码的执行效果图


二、CColorPicker的简单介绍
CColorPicker类是从CButton派生的,可以像一般的按钮一样使用它。因为考虑到封装性与使用的方便,其中的鼠标光标与色彩对话框都采用动态建立。该类提供自动绑定的功能,当选择的颜色改变后通过BN_CLICKED事件通知父窗口,下面就让我们来看看CColorPicker类的具体使用步骤吧!

三、具体使用步骤(以示例工程为例)

3.1 准备工作
创建ColorPickerDemo对话框MFC工程。
将本文代码中提供的ColorPicker.h,ColorPicker.cpp两个文件拷贝到您的工程目录下,并加入到工程中。

3.2 利用资源编辑器在主对话框中加入ID为:IDC_BUTTON1的按钮,在Style中设置其为Owner draw属性。在CColorPickerDemoDlg类中为IDC_BUTTON1添加Control类别的成员变量(Member Variables)m_btnColor1,然后在ColorPickerDemoDlg.h中将CButton m_btnColor1;改为CColorPicker m_btnColor1;
并在ColorPickerDemoDlg.h中加上#include "ColorPicker.h"

编译运行看看效果吧!

3.3 程序已经可以运行了,但如何得到色彩选择器颜色改变的通知呢?在这里按钮的BN_CLICKED的单击事件已经成了颜色改变的事件了。我们只要像添加按钮单击处理函数一样即可添加颜色改变处理函数。
在处理函数里我们可以通过COLORREF CColorPicker::GetColor()函数得到COLORREF类型的颜色值,或者通过void CColorPicker::GetColor(CString& strColor)函数直接得到型如#FFFFFF样式的字符串。请看如下代码:
void CColorPickerDemoDlg::OnButton1() {COLORREF m_clrBKColor = m_btnColor1.GetColor();CString strColor;m_btnColor1.GetColor(strColor);}

3.4 自动绑定功能
假如您需要在选择色彩后自动将颜色值写入某个窗口,可以用void CColorPicker::SetBuddy(HWND hWnd)函数设置绑定的窗口,这一功能在自动设置编辑框文字时非常有用。

颜色选择器CColorPicker就介绍到这里了,愿它能为您的程序增色,下回见吧!

来源:https://www.tulaoshi.com/n/20160129/1484154.html

延伸阅读
标签: Web开发
//jQuery 选择器 $ //$(expression,[context]) return jQuery //Unit One //expression 之 CSS 定义符 就是以CSS语法表示所要选择的元素 // $("*"); // 表示页面所有元素标签 // $("th, td") // 表示所有thtd元素标签 // $("a") // 表示所有a元素标签 // $("div#onlydiv"); // 表示CSS选择中id=onlyidv的元素 $("#ID")为全文档匹配 // ...
标签: Web开发
DOM结构其实也是一种树形结构,jQuery提供的树形选择器可以用来选择DOM Tree里的节点。这些树形选择器的方法包括:children(), parent(), parents(), next(), prev(), siblings(). 选择某个元素的"孩子" - children() 代码如下: ul id="parent" li id="son1"第一列/li li id="son2"第二列/li li id="son3"第三列/li /ul $("#parent"...
标签: Web开发
jQuery之所以令人爱不释手,在于其强大的选择器表达式令DOM操作优雅而艺术。 jQuery的选择符支持id,tagName,css1-3 expressions,XPath,参见: http://docs.jquery.com/Selectors DEMO: Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ -->!DOCTYPE html PUBLIC "-/...
  相信大家都见过一些软件里的图片下拉选择控件吧?喏,OICQ中就有。但网页上的你见过没有?小阳今天就为你推出你心怡已久的这个控件,下面演示中就是了!效果还可以吧?心动不如行动,我们来看下是怎么弄出来的。 演示:(点击这里在新窗口中打开演示页) 我们先来看下做出这个控件需要解决哪些问题。 第一 ,...
标签: Web开发
我很久以前就开始计划着整理一下CSS选择器的浏览器支持,因为CSS3增加了很多非常有用的选择器。之前我也写过一篇《使用CSS选择器创建个性化链接样式 》,作为对CSS选择器的初步研究。 kimblim网站整理了一份很全面的CSS选择器支持情况,我将其翻译过来并进行进一步的整理,将其尽可能的简化。同时结合evotech网站整理的CSS选择器支持列表,以...

经验教程

897

收藏

91
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部