给button等按钮和控件加背景色或者图片.doc

给button等按钮和控件加背景色或者图片.doc

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
给button等按钮和控件加背景色或者图片5--2--1 图标按钮 图标按钮可谓是按钮控件使用图像最简单的方式,除此之外图标按钮的优点还在于显示在按钮上的图标能够使用透明色,因而不必再去为处理非矩形图像在按钮颜色发生变化时边缘颜色的处理而费心。不过也正是使用图标导致了图标按钮的天生弱点。图标太小了,仅仅才 32×32 像素大小,在有的场合仅靠使用这么小的图像就有些显得力不从心了。 在讲图标按钮如何使用之前,先得告诉读者句柄的概念。句柄是什么?很多教科书上都这样定义:句柄是一个用于代表对象的 32 位整型值。不过这对于很多初学者而言,并不是太好理解。其实也可以将未赋值的句柄理解为一个指向“空白”(void *)的指针,事实上也如此,在 Winnt.h 中,句柄就是如此被声明的:typedef void *HANDLE; 当句柄被赋值之后,它就成为指向某个特定位置的指针,即代表了某个特定的对象。之所以在现在提及句柄,是因为句柄是 Windows 编程中的一个关键性概念。尽管在前面除第三章外的内容中很少涉及它,不过在下面的学习中我们将会很频繁的使用到句柄。 技术概要: 使用图标按钮很简单,大的步骤仅仅就三步: .从外部导入一个图标或自己创建一个图标作为资源。 .从资源中载入所要使用的图标。 .在要使用图标的按钮上设置图标。 具体实现: ■第一步导入图标没有什么特别之处,同前面 2.2 节中使用静态图像控件导入位图是非常类似的。无非就是使用 Insert 菜单上的 Resource 命令,导入或创建一个图标即可。 ■第二步载入图标就涉及到一些细节问题了。使用函数 LoadIcon() 载入图标。因为LoadIcon() 是类 CWinApp 的成员函数,同时函数 LoadIcon() 返回所载入图标的句柄。所以我们采用以下方法来调用函数 LoadIcon(): h_Icon = AfxGetApp() - LoadIcon(IDI_Icon); ???? 当然,在该语句之前还必须要有对图标句柄 h_Icon 的定义: HICON h_Icon; ■第三步为按钮设置图标了,这通过调用函数 SetIcon() 来实现。同时不要忘记,还须在使用图标的按钮的 Properties 设置中设置 Icon 属性,指明该按钮是一个图标按钮。因为函数 SetIcon() 为类 CButton 的成员函数,可以通过两种方法来调用该函数。一是通过 CButton 类对象来调用 SetIcon(),如下面代码: ??????????? m_BtonIcon.SetIcon(h_Icon);????? // m_BtonIcon 为一个 CButton 类对象。 ???? 二是先由函数 GetDlgItem() 获得一个指向 CWnd 对象的指针,再通过强制类型转换将该指针转换为一个指向 CButton 类对象的指针。进而通过该指针来调用函数 SetIcon()。具体实现代码如下: ??????????? CWnd *pWnd =???? GetDlgItem(IDC_RADIO2); ????????? CButton *pBton = (CButton *) pWnd; ??????????? pBton - SetIcon(h_Icon2); ???? 既然有第一种较为简便的方法为按钮设置图标,为何还要提及第二种方法呢?因为并不是在任何情况下都会有 CButton 类对象的,例如对于一组单选按钮。只能为它们定义一个 CButton 类对象,如果使用该对象来调用函数 SetIcon(),则只能在设置了 Group 属性的那个单选按钮上设置图标。所以要达到在一组单选按钮中分别设置不同图标的目的,就只有使用第二种方法。 ?????? 尽管在现在的 Windows 编程中,资源句柄数多得相对于我们而言几乎是无限的,但最好在使用完资源句柄后及时的把它们删除掉。上面所讲述的方法不仅适用于 Push Button,而且同样适用于 Radio Button、Check Box 和 Group Box。 5--2--2 位图按钮 图标按钮虽有着种种优点,但它能显示的图像实在是太小了。在有的场合显然就不适用了。位图按钮可以在按钮表面显示一幅位图而不再是一个小小的图标。但是因为在位图中不能使用透明色,因而当显示的位图不为矩形时,就得为位图中非矩形部分的背景色动一番脑筋了。因为存在着用户改变按钮表面颜色,也就是位图背景色的可能性。可以用透明位图的技术来解决这一难题,这将在后面 5.7 实现具有透明性的位图中讲述。 技术概要: 位图按钮的使用的大致步骤同图标按钮基本相似,也是以下三个步骤: 从外部导入一个位图或自己创建一个位图作为资源。 从资源中载入所要使用的位图。 在要使用位

文档评论(0)

gangshou + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档