MFC常用控件使用(文本框、编辑框、下拉框、列表控件、树控件)
企业开发
2023-04-06 15:51:17
阅读次数: 0
简介
- 本文章主要介绍下MFC常用控件的使用,包括静态文本框(Static Text)、编辑框(Edit Control)、下拉框(Combo Box)、列表控件(List Control)、树控件(Tree Control)的使用。
创建项目
- 我们选择 文件->新建->新建项目,选择MFC程序
- 选择基于对话框,点击完成。
- 创建完成后,我们选择左下角的资源视图。然后点击Dialog下的IDD_CSTATIC_DIALOG,就可以看到MFC自动创建好的对话框界面。
静态文本框 Static Text
编辑框 Edit Control
下拉框 Combo Box
- 在工具栏选择 Combo Box
- 右击控件选择属性,可以在Data属性中写入下拉框要显示的内容,中间用分号分隔
- 默认是可以进行编辑的。如果不想编辑,可以将属性中的Type属性改为Drop List,有的这块显示的是中文,那可以选择下拉列表。这样下拉框就无法编辑了。
- 下拉列表的显示项,默认是按ASCII码排序。如果不想让自动排序,就按我们输入的顺序显示,可以将属性Sort设置为False
- 一般也都是在代码中添加显示内容,因此,先添加变量。
- 常用功能介绍
-
m_ComBoxText.AddString(TEXT("C++"));
m_ComBoxText.AddString(TEXT("JAVA"));
m_ComBoxText.AddString(TEXT("PYTHON"));
m_ComBoxText.AddString(TEXT("SHELL"));
m_ComBoxText.SetCurSel(0);
m_ComBoxText.InsertString(2, TEXT("PHP"));
m_ComBoxText.DeleteString(3);
CString comStr;
m_ComBoxText.GetLBText(1, comStr);
- 还有个常用功能,就是我们选择下拉框中某一项时,要获取到选择的具体是哪一个
- 选择控件属性,选择控件事件,选择CBN_SELCHANGE, 点击添加
- 就会自动生成一个事件函数,下拉框选择项改变时,就会触发该事件,可以在事件函数中获取当前选中的内容
列表 List Control
- 在工具栏中选择List Control控件,放到界面上。一般修改属性View为Report(报表模式)
- 添加一个变量
- 可以在初始化代码中设置数据和属性
-
CString strList[] = {
TEXT("NAME"), TEXT("SEX"), TEXT("AGE") };
for (int i = 0; i < 3; i++) {
m_listControl.InsertColumn(i, strList[i], LVCFMT_LEFT, 100);
}
CString strNameList[] = {
TEXT("tom"), TEXT("jack"), TEXT("mary") };
CString strSexList[] = {
TEXT("boy"), TEXT("boy"), TEXT("girl") };
CString strAgeList[] = {
TEXT("18"), TEXT("20"), TEXT("17") };
for (int i = 0; i < 3; i++) {
m_listControl.InsertItem(i, strNameList[i]);
m_listControl.SetItemText(i, 1, strSexList[i]);
m_listControl.SetItemText(i, 2, strAgeList[i]);
}
m_listControl.SetExtendedStyle(m_listControl.GetExtendedStyle() | LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES);
- 效果
树控件 Tree Control
- 在工具栏中选择Tree Control,拖拽到界面上
- 属性中可以设置 Has Lines为True,可以有线。设置Has Buttons为True,可以有折叠按钮。根节点之间要有线,可设置Lines At Root为True。
- 设置完可以看下效果
- 添加变量,在代码中写逻辑
- 可以先在初始化接口中设置节点
-
HTREEITEM root = m_treeControl.InsertItem(TEXT("ROOT"), 0, 0, NULL);
HTREEITEM parent = m_treeControl.InsertItem(TEXT("PARENT"), 1, 1, root);
HTREEITEM sub1 = m_treeControl.InsertItem(TEXT("SUB1"), 2, 2, parent);
HTREEITEM sub2 = m_treeControl.InsertItem(TEXT("SUB2"), 3, 3, parent);
m_treeControl.SelectItem(sub1);
- 效果
- 常用的一个功能是我们需要知道选择的是哪一个。选择属性,在控件事件中选择TVN_SELCHANGE,添加事件
- 这个时候只有选中项改变,就会触发该事件,我们可以在对应的事件函数中完成相关操作
转载自blog.csdn.net/new9232/article/details/129460773