WTL自画按钮的实现(5)
五、例程
启动VC++6.0,创建一个基于WTL对话框的应用程序,工程名为OwnerDrawDemo创建完成后,打开ClassView,选择CmainDlg,单击鼠标右键,选择Add Member Variable 为CmainDlg类添加一个CownerDrawButton成员变量。打开ResourceView ,在对话框资源模板上添加一个按钮,调整到合适尺寸,ID为IDC_BUTTON1,Caption 为Help 。导入一幅位图和一幅相应的Mask图,修改ID分别为:IDB_BUTTON、IDB_MASK。
打开FileView,打开OwnerDrawDemo.cpp在其顶部依次添加#include <atlctrlx.h>、
#include <atlgdi.h> 和 #include <atlmisc.h>。打开maindlg.h文件,在OnInitDialog函数中添加如下代码:
DWORD style = BMPBTN_AUTO3D_SINGLE|BMPBTN_SHAREIMAGELISTS|
BMPBTN_HOVER;
IMGINFOS imgis = {0,1,1,-1,30,30,ILC_COLOR24|ILC_MASK,0,2};
if(m_Button.LoadImageFromID(IDB_BUTTON,IDB_MASK,imgis))
{
m_Button.SetBitmapButtonExtendedStyle(style);
m_Button.SetBitmapPosStyle(IMAGEPOS_TOP);
}
m_Button.SubclassWindow(GetDlgItem(IDC_BUTTON1));
m_Button.SetToolTipText(_T("WTL_OwnerDrawButton!"));
现在就可以按F7构建或者Ctrl + F5执行了。
程序在Windows2000 + VC++6.0 +WTL 7.0 环境下编译通过,在Windows98、Windows 2000及WindowsXP下运行通过。
- 上一篇:DirectShow系统初级指南
- 下一篇:VC++中使用内存映射文件处理大文件