位图按钮是由MFC提供的几种附加控件之一。在前一节的过程中,我们可以使用一个位图来代替文本作为下压按钮的标签。而在位图按钮中,我们可以使用多达四个位图来分别代表按钮处于四种不同的状态(凸起、按下、获得焦点或被禁止)下的显示。而且,使用位图按钮还可以去除掉令人讨厌的按钮黑边。而使用位图按钮并不复杂,但是相比起标准的按钮控件(它由Windows自身所提供)而言有一些特殊。下面的过程描述了位图按钮的使用,它们在MFC中使用类CBitmapButton封装。
1. 使用AppWizard创建新的基于对话框的MFC工程BitmapButton。
2. 使用资源编辑器绘制一个标准按钮,将其ID设为IDC_CLICKHERE,标题文本设为CLICKHERE,然后在Styles选项卡中将Owner draw属性设置为真。
3. 向工程中添加四个位图资源。
图6. 25 位图按钮IDC_CLICKHERE所使用的四个位图资源
所添加的四个位图资源的ID的设置取决于在第一步中的标题文本的设置:按钮未按下去时使用的位图添加了后缀"U";按钮按下去时使用的位图添加了后缀"D";按钮拥有焦点时使用的位图添加了后缀"F";按钮被禁止时使用的位图添加了后缀"X"。需要注意的是,由于这些位图资源的ID为字符串,因此在使用属性对话框设置其ID时一定要加了双引号,否则资源编辑器会将该ID值看作代表一个整型量的符号。
4. 在对话框类CBitm