CTreeComboBox:支持XML的多行树组合框

介绍 本文介绍了CTreeComboBox,它实际上应该被称为CIconMultilineXmlTreeComboBox。 它是一个CButton派生类,有两个主要特性: XML文件支持:控件将树控件显示为下拉窗口。树控件从XML文件加载数据! 多行编辑框:组合框的编辑框可以有“多行”样式,这样它就可以支持从树中选择多个项目! 其他功能包括: 对多行版本的项进行排序。 树控件和控件的单行版本都支持图标。 使用的代码 在对话框中放置一个所有者绘制按钮。IDC_MYCOMBO)。 为控件声明一个成员变量。隐藏,复制Code

CTreeComboBox m_mycombo;

将它分配给按钮(在对话框的DoDataExchange方法中)。隐藏,复制Code

DDX_Control(pDX, IDC_MYCOMBO, m_mycombo);

加载XML文件:隐藏复制Code

m_mycombo.LoadXml("countries.xml");

或者更好的方法是,加载一个XML文件和一个位图,其中包含树的图像列表。隐藏,复制Code

m_mycombo.LoadXml("countries.xml",IDB_TREE);

就是这样!如果你想获得你选择的数据,声明一个CString变量:Hide  复制Code

CString m_text;

并将其分配给控件(在对话框的DoDataExchange方法中)。隐藏,复制Code

DDX_Text(pDX, IDC_MYCOMBO, m_text);

讲话 如果按钮的高度大于32,组合框将自动变成多行组合框,否则将是普通的单行组合框。 作为imagelist的位图的第一个图标被类用作文件夹图标。第二个图标用于展开的文件夹。第三个是树的叶子。叶子的图标也显示在控件的单行版本的编辑框中。 控件的多行版本支持按字母顺序对选定项排序。可以使用EnableSort(BOOL)方法启用或禁用此特性。 学分 树的支持是基于Dennis Howard和Hai Ha的基于树的组合框。 XML文档处理的代码由Pablo van der Meer编写。 历史 2004年8月5日:第一版。 本文转载于:http://www.diyabc.com/frontweb/news179.html

posted @ 2020-08-04 02:45  Dincat  阅读(175)  评论(0编辑  收藏  举报