65.9K
CodeProject 正在变化。 阅读更多。
Home

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

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.25/5 (11投票s)

2003年5月14日

1分钟阅读

viewsIcon

57034

downloadIcon

1433

一个结合了编辑控件和浏览按钮的控件,用于弹出文件/文件夹浏览对话框。

Sample Image - WtlEditBrowserCtrl.jpg

引言

有时,当我们希望用户选择文件或文件夹或 ODBC 驱动程序时,我们需要创建两个控件:一个用于输入文本的编辑控件,以及一个用于实际选择文件或文件夹等的浏览按钮。因此,我想将这两个控件合并为一个。CWtlEditBrowserCtrl 类就是这个结果。类定义和实现位于 WtlEditBrowserCtrl.hWtlEditBrowserCtrl.cpp 文件中,这些文件包含在演示项目中。

使用控件

要在您的应用程序中使用此控件

  1. WtlEditBrowserCtrl.hWtlEditBrowserCtrl.cpp 文件添加到您的项目中。
  2. 设计对话框并添加编辑控件
  3. WtlEditBrowserCtrl.h 头文件添加到您的项目中
  4. CWtlEditBrowserCtrl 赋值给您的编辑框。
  5. 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 提供的原始控件:

我也想感谢所有提供反馈、提出建议并帮助这个项目成为今天的样子的其他人

联系作者

Ilya Solnyshkin,邮箱: isolnyshkin@yahoo.com,网站: http://www.printsniffer.com/

© . All rights reserved.