位图在VC 应用程序中实现颜色选择组合框

vc组合  时间:2021-03-03  阅读:()

在VC++应用程序中实现颜色选择组合框

相信读者朋友们对OFFICE2000一定非常熟悉吧它里面的东东可真不少不管是活泼可爱的"大眼夹"还是各种平面造型的Wi ndows控件都很受广大用户喜欢。那么这次就让我们来模仿它做个十分常用的控件 "颜色组合框"。如果你现在正在做关于字处理类的软件时这个"东东"一定对你有用。程序编译运行后的界面效果如图一所示

图一、颜色选择组合框<

一、实现方法

首先让我们先来了解一下画控件的基本原理和过程也许这个才是本文的原意。大家都知道Wi nd ows中所有可视的东西都是画出来的那么这个画画的内部过程又是怎样的呢一般画Wi nd ows控件的过程分为三大部分一是在WM_MEASURE ITEM消息影射函数中设置当前要画的Item的大小尺寸二是在WM_D RAW ITE M消息影射函数中根据Ite m的大小尺寸来画该Item(图标/位图/字符串等)三是在WM_PAINT消息映射函数中不断的绘制当前的控件内容。下面我们针对CBSColorComboBox类的这几个过程来做个简单的介绍

在WM_MEASURE ITEM消息影射函数中设定Item的大小尺寸的时候我们只需要设置I te m的高度即可。这里的高度我们设置为2倍的系统小图标

SMALL ICON的高度其尺寸用: :GetSystemMetrics SM_CXSMICON

取得。

Visual C++的程序开发人员可以在Item的矩形区域内画各种各样的信息例如图标/位图/字符串等等。那么有人会疑问 "我们用什么来画我们在哪里画又如何来画呢 "。答案其实都在这个LPDRAWITEMSTRUCT结构中。hDC成员为设备上下文环境HDC 获得了该设备句柄也就意味着我们拥有了画任何位图/图标/文本的能力那么接下来的问题就是我们在哪里来画呢答案也很简单获得LP D RAWITE MSTRUC T结构中Item的矩形区域(rc Ite m),那么这就是你施展才华的空间了要充分利用它哦

最后一步就是如何来画的问题了说白了就是如何分配每个元素的空间如何在它们各自的空间上画出你想要的东西。按照常规一般分别计算出ICON所占的矩形区域/文本所占的矩形区域/位图的矩形区域如果你还有其他元素那么也应该计算出该元素所占的矩形区域/位图所占的矩形区域。接下来的一切都很简单了不外乎CDC类的几个常用函数画图标用DrawIco n  、画位图用BitBlt

  、画文字用D rawTe xt  等函数。如果你觉得视觉上还不够C OOL你还可以来设置各个Ite m的文本颜色背景颜色 以及图标的突起和凹陷的视觉效果。

不过在上述过程中需要注意三个问题一是为了消除不断绘制所带来的闪烁现象需要在WM_ERASEBKGND消息响应中作些特殊处理在WM_PAINT消息中直接把组合框的客户区当成一幅位图来不断更新而不是对ICON区域和文本区域分别重绘。二是每当用户改变了组合框的当前内容后在画新的Ite m之前一定要记得清除前次组合框内的内容。三是如果想选择更多的颜色那么只要选择组合框中的最后一个Item(More Colors)即可这个Item是为用户自定义颜色而专门设置的。

二、编程步骤

1 、启动Visual C++6.0生成一个基于对话框的项目将该项目命名为"WW"

2、使用Class Wizard新建一个类CBSColorComboBox其基类选择为CComboBox类

3、在程序的对话框中放置一个ComboBox控件使用CLASSWIZARD添加相应的CComboBox类成员变量然后将该成员变量的类型修改为

CBSColorComboBox

4、添加代码编译运行程序。

三、程序代码

搬瓦工(季付46.7美元)新增荷兰(联通线路)VPS,2.5-10Gbps

搬瓦工最近新增了荷兰机房中国联通(AS9929、AS4837)线路的VPS产品,选项为NL - China Unicom Amsterdam(ENUL_9),与日本软银和洛杉矶(DC06)CN2 GIA配置一致可以互换,属于高端系列,2.5Gbps-10Gbps大带宽,最低季付46.7美元起。搬瓦工VPS隶属于老牌IT7公司旗下,主要提供基于KVM架构VPS主机,数据中心包括美国洛杉矶、凤凰城、纽...

陆零(¥25)云端专用的高性能、安全隔离的物理集群六折起

陆零网络是正规的IDC公司,我们采用优质硬件和网络,为客户提供高速、稳定的云计算服务。公司拥有一流的技术团队,提供7*24小时1对1售后服务,让您无后顾之忧。我们目前提供高防空间、云服务器、物理服务器,高防IP等众多产品,为您提供轻松上云、安全防护 为核心数据库、关键应用系统、高性能计算业务提供云端专用的高性能、安全隔离的物理集群。分钟级交付周期助你的企业获得实时的业务响应能力,助力核心业务飞速成...

pacificrack:$12/年-1G内存/1核/20gSSD/500g流量/1Gbps带宽

pacificrack在最新的7月促销里面增加了2个更加便宜的,一个月付1.5美元,一个年付12美元,带宽都是1Gbps。整个系列都是PR-M,也就是魔方的后台管理。2G内存起步的支持Windows 7、10、Server 2003\2008\2012\2016\2019以及常规版本的Linux!官方网站:https://pacificrack.com支持PayPal、支付宝等方式付款7月秒杀VP...

vc组合为你推荐
百度商城百度商城知道在哪个地方,怎么找不到啊同ip网站查询怎么查自己的服务器挂着哪些网站冯媛甑谁知道怎么找到冯媛甄的具体资料?www.55125.cnwww95599cn余额查询www.5any.com重庆哪里有不是全日制的大学?www.bbb551.combbb是什么意思dadi.tvApple TV是干嘛的?怎么用?多少钱?45gtv.comLETSCOM是什么牌子?官人放题《墨竹题图诗》 大意蜘蛛机器人红警2里的蜘蛛机器人怎样对负
最便宜的vps vps优惠码 加勒比群岛 国外idc 10t等于多少g 网站实时监控 北京主机 南昌服务器托管 免费全能空间 元旦促销 创梦 免费美国空间 如何注册阿里云邮箱 华为云盘 联通网站 如何登陆阿里云邮箱 腾讯数据库 闪讯网 hdsky mteam 更多