Davide Calabro 的 CButtonST 类移植到 WTL
4.94/5 (9投票s)
2001年6月13日
145539
5210
一个功能齐全的属主绘制按钮类
 
 
 
 
 
 
 
 
引言
现在您可以在您的 ATL/WTL 项目中使用 Davide Calabro 优秀的 CButtonSt 类。该类仍然名为 CButtonSt,并保留了大部分原始代码。只需按照以下简单步骤操作
- 创建一个 WTL 项目
- 设计对话框并添加按钮控件
- 将 ButtonST.h 头文件添加到您的项目中
- 将 CButtonSt分配给每个按钮。
- 在 OnInitDialog中,- 使用 SubclassWindow方法将每个成员控件(CButtonST)子类化到每个 ID。
- 使用 CButtonSt方法来更改控件的外观。
 
- 使用 
- 在您的对话框中,不要忘记添加宏 REFLECT_NOTIFICATIONS,它允许按钮接收诸如WM_DRAWITEM之类的消息。
class MyDialog : public CDialogImpl<MyDialog> { BEGIN_MSG_MAP(MyDialog) ... MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog) REFLECT_NOTIFICATIONS() END_MSG_MAP() ... LRESULT OnInitDialog(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/); ... CButtonST m_btn; ... }; LRESULT MyDialog::OnInitDialog(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/) { ... m_btn.SubclassWindow(GetDlgItem(IDC_BTN)); m_btn.SetIcon(IDI_EOAPP); m_btn.SetFlat(false); ... }
有关更多详细信息,请参阅 Davide Calabro 原始的 CButtonSt 文章。
最新更新
- 2001 年 6 月 26 日- 更新到 Davide Calabro 的版本 3.2
- 添加了从图像列表中定义图标的支持
- 添加了动态创建按钮的支持
 
- 2001 年 6 月 14 日 - 修复了自动重复功能中的一个错误
Serge  谢谢。
 谢谢。
