网站建设中网站需求分析报告作用,上海服装外贸公司,浙江省住房和城乡建设局网站,旅游网站开发结束语简介
本文章主要介绍下MFC常用控件的使用#xff0c;包括静态文本框(Static Text)、编辑框(Edit Control)、下拉框(Combo Box)、列表控件(List Control)、树控件(Tree Control)的使用。
创建项目
我们选择 文件-新建-新建项目#xff0c;选择MFC程序 选择基于对话…简介
本文章主要介绍下MFC常用控件的使用包括静态文本框(Static Text)、编辑框(Edit Control)、下拉框(Combo Box)、列表控件(List Control)、树控件(Tree Control)的使用。
创建项目
我们选择 文件-新建-新建项目选择MFC程序 选择基于对话框点击完成。 创建完成后我们选择左下角的资源视图。然后点击Dialog下的IDD_CSTATIC_DIALOG就可以看到MFC自动创建好的对话框界面。
静态文本框 Static Text
我们点击左边的工具箱有的可能在右边。选择Static Text就会放置到界面上。我们点击输入文字可以直接修改显示内容。 我们常用的功能可能是需要在代码中去获取和设置静态文本框的显示内容。点击静态文本框属性可以先修改下ID便于我们区分 然后选择静态文本框右击选择添加变量。可以设置变量类型等信息。 然后选择类视图可以在对话框初始化接口中设置文本框的显示内容 运行效果 获取文本框显示内容。可直接使用如下代码 CString str;m_textShow.GetWindowTextW(str);编辑框 Edit Control
选择工具箱把Edit Control拖到界面上运行后我们可以直接在编辑框中输入内容 如果想要输入多行内容右击控件选择属性将Multiline和Want Return属性改为true输入一行再回车就可以输入多行内容。 默认垂直方向输入是有限的我们将Auto VScroll改为true垂直方向也可以一直输入。将Horizontal Scroll和Vertical Scroll改为true可以给编辑框加上水平和垂直滚动条 如果要在代码里设置和获取编辑框内容选择编辑框右击添加变量 在对话框初始化函数中去设置和获取文本框内容 刚才添加变量时类别选的是Control我们也可以指选择Value这时候变量类型有很多可以选择一个字符串类型 在代码里设置和获取编辑框内容 //设置内容m_editStr TEXT(this is value MFC);//将变量内容同步到控件中UpdateData(FALSE);//将控件内容同步到变量中UpdateData(TRUE);//获取内容MessageBox(m_editStr);下拉框 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) {//参数1索引; 参数2显示内容; 参数3对齐方式; 参数4列宽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添加事件 这个时候只有选中项改变就会触发该事件我们可以在对应的事件函数中完成相关操作