MFC学习--下拉框、列表、树控件、选项卡

下拉框

属性

Data: 下拉可选项,用分号分隔( ; )
Type: DropDown,可修改选项内容;DropList,不可修改内容
sort: 排序,true,默认按照首字母排序;false,按照输入顺序排序

代码操作

添加选项:

//下拉框添加选项
	m_cbx.AddString(TEXT("马尔科"));
	m_cbx.AddString(TEXT("艾斯"));
	m_cbx.AddString(TEXT("乔兹"));
	m_cbx.AddString(TEXT("萨奇"));
	m_cbx.AddString(TEXT("比斯塔"));

设置默认值

//设置默认值
	m_cbx.SetCurSel(0);//下拉选项的下标

增删改

	//插入值
	m_cbx.InsertString(4, TEXT("布拉曼克"));
	//删除选项
	m_cbx.DeleteString(1);
	//获取索引值
	CString str1;
	m_cbx.GetLBText(2,str1);
	MessageBox(str1);

选项变化事件
添加事件
在这里插入图片描述
事件中获取变化后的选项内容

//选项变化事件
void CComboboxDlg::OnCbnSelchangeCombo1()
{
	// TODO: 在此添加控件通知处理程序代码
	//获取索引值
	int index = m_cbx.GetCurSel();
	CString str;
	m_cbx.GetLBText(index, str);
	MessageBox(str);
}

列表控件

属性

选择list control
View 输出样式,选择Report,报表输出

代码操作

	//列表控件设置
	CString str[] = { TEXT("姓名"),TEXT("性别") ,TEXT("年龄") };
	//设置表头
	for (int i = 0; i < 3; i++) 
	{
		m_listc.InsertColumn(i, str[i], LVCFMT_CENTER, 100);//索引,名称,对齐方式,列宽
	}
	//设置正文,从零开始
	for (int i = 0; i < 5; i++) 
	{
		CString str1;
		str1.Format(TEXT("小马%d"),i);
		//申请一行,并添加第一列
		m_listc.InsertItem(i, str1);
		//添加其他列
		m_listc.SetItemText(i, 1, TEXT("男"));
		m_listc.SetItemText(i, 2, TEXT("22"));
	}
	
	//设置属性
	//整行选中,网格线
	m_listc.SetExtendedStyle(m_listc.GetExtendedStyle()| LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES);

删除选中项:

while(m_ctlListCtrl.GetNextItem(-1,LVNI_ALL | LVNI_SELECTED) != -1)
{
		int nItem = m_ctlListCtrl.GetNextItem(-1,LVNI_ALL | LVNI_SELECTED);
		m_ctlListCtrl.DeleteItem(nItem);
}

根据索引获取文本

int nItem = 1;
CString strDel = m_ctlListCtrl.GetItemText(nItem, 0); //第一列

树控件

Tree Control

属性

has line:有连接层级的线;
has button: 是否有折叠按钮(+ 和-)
line at root: 根节点是否有线

代码操作

1、 控件添加变量(m_treec);
2、 在工程目录的res文件夹中放入ico图片,资源视图中选择Icon,右键添加资源,Icon,导入。
一如既往在dlg的初始化函数(OnInitDialog)中添加代码:

//设置图标
	//CImageList list;//图片集合,防止加载时被释放,放在成员中
	//尺寸x,尺寸y,位图类型,包含图片个数,开辟控件数(与图片数一致即可)
	list.Create(30,30,ILC_COLOR32,4,4);
	//添加具体图片
	//准备HICON图标
	HICON icons[4];
	icons[0] = AfxGetApp()->LoadIconW(IDI_ICON1);//icon图片的id,可在属性中查找
	icons[1] = AfxGetApp()->LoadIconW(IDI_ICON2);
	icons[2] = AfxGetApp()->LoadIconW(IDI_ICON3);
	icons[3] = AfxGetApp()->LoadIconW(IDI_ICON4);
	for (int i = 0; i < 4; i++)
	{
		list.Add(icons[i]);
	}
	
	m_treec.SetImageList(&list,TVSIL_NORMAL);
	//设置节点
	//插入的节点名称,显示图标,选中时显示的图标,父节点,子节点
	HTREEITEM root = m_treec.InsertItem(TEXT("根节点"), 0, 0, NULL);
	HTREEITEM first =  m_treec.InsertItem(TEXT("一级"), 1, 1, root);
	HTREEITEM second1 = m_treec.InsertItem(TEXT("二级"), 2, 2, first);
	HTREEITEM second2 = m_treec.InsertItem(TEXT("二级"), 3, 3, first);
	//设置默认选中
	m_treec.SelectItem(second2);

3、 选项切换时
在这里插入图片描述

void CComboboxDlg::OnTvnSelchangedTree1(NMHDR *pNMHDR, LRESULT *pResult)
{
	LPNMTREEVIEW pNMTreeView = reinterpret_cast<LPNMTREEVIEW>(pNMHDR);
	// TODO: 在此添加控件通知处理程序代码
	*pResult = 0;

	//获取选中项
	HTREEITEM item = m_treec.GetSelectedItem();
	CString itemtext = m_treec.GetItemText(item);
	MessageBox(itemtext);
}

选项卡

Tab Control

属性

1、引用外部文件,复制文件到项目文件夹中。(文件源码可参照另外一篇分享文章)
在这里插入图片描述
添加后可在类视图中进行查看,多了一类:
在这里插入图片描述
在这里插入图片描述
2、资源视图,dialog中插入两个对话框
3、修改属性,去除边框(border:none),显示方式为子窗口(style:child);
4、为两个窗口添加类,Cdlg1,Cdlg2;
5、为选项卡控件添加变量,注意变量类型为添加的两个文件的类名CTabSheet;
在这里插入图片描述

代码操作

1、增加两个子窗口为DLG的成员

public:
	afx_msg void OnTvnSelchangedTree1(NMHDR *pNMHDR, LRESULT *pResult);
	CTabSheet m_cts;

	Cdlg1 dl1;
	Cdlg2 dl2;

2、 窗口初始化中增加以下设置

	//添加标签页
	m_cts.AddPage(TEXT("我的选项卡1"), &dl1, IDD_DIALOG1);
	m_cts.AddPage(TEXT("我的选项卡2"), &dl2, IDD_DIALOG2);
	//显示
	m_cts.Show();

文化建设

咏蛙
独坐池塘如虎踞
绿荫树下养精神
春来我不先开口
哪个虫儿敢做声
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值