WTL 混合编辑控件,结合了编辑控件和按钮控件






4.25/5 (11投票s)
2003年5月14日
1分钟阅读

57034

1433
一个结合了编辑控件和浏览按钮的控件,用于弹出文件/文件夹浏览对话框。
引言
有时,当我们希望用户选择文件或文件夹或 ODBC 驱动程序时,我们需要创建两个控件:一个用于输入文本的编辑控件,以及一个用于实际选择文件或文件夹等的浏览按钮。因此,我想将这两个控件合并为一个。CWtlEditBrowserCtrl
类就是这个结果。类定义和实现位于 WtlEditBrowserCtrl.h 和 WtlEditBrowserCtrl.cpp 文件中,这些文件包含在演示项目中。使用控件
要在您的应用程序中使用此控件
- 将 WtlEditBrowserCtrl.h 和 WtlEditBrowserCtrl.cpp 文件添加到您的项目中。
- 设计对话框并添加编辑控件
- 将 WtlEditBrowserCtrl.h 头文件添加到您的项目中
- 将
CWtlEditBrowserCtrl
赋值给您的编辑框。 - 在
OnInitDialog()
中,使用SubclassWindow
方法将CWtlEditBrowserCtrl
控件子类化到 ID。
#include "WtlEditBrowserCtrl.h" //... class CMainDlg : public CDialogImpl<CMainDlg> { BEGIN_MSG_MAP(CMainDlg) ... MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog) REFLECT_NOTIFICATIONS() END_MSG_MAP() ... LRESULT OnInitDialog(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/); ... CWtlEditBrowserCtrl m_Path; ... }; //... LRESULT CMainDlg::OnInitDialog(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/) { ... m_Path.SubclassWindow( ::GetDlgItem( m_hWnd, IDC_EDIT1 ) ); ... }
要求
您需要 WTL 库,可以从微软网站下载。
致谢
我想感谢 Pete Arends 提供的原始控件:
我也想感谢所有提供反馈、提出建议并帮助这个项目成为今天的样子的其他人
- Boris Kropivnitsky
- Andrew Fedoniouk ( http://www.terra-informatica.org/ )
- Sergei Zotin
联系作者
Ilya Solnyshkin,邮箱: isolnyshkin@yahoo.com,网站: http://www.printsniffer.com/