MFC常用控件

这篇博客详细介绍了MFC中的几种常见控件,包括ComboBox的使用,List Control如何设置报表模式,Tree Control的配置如Lines At Root和折叠功能,以及Tab Control的创建与Dialog的关联。通过这些控件,开发者可以构建更加丰富的用户界面。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ComboBox:下拉框 

	m_combobox.AddString(TEXT("唐僧"));
	m_combobox.AddString(TEXT("孙悟空"));
	m_combobox.AddString(TEXT("八戒"));
	m_combobox.AddString(TEXT("沙僧"));
	m_combobox.SetCurSel(0);
	m_combobox.InsertString(2, TEXT("白龙马"));
	m_combobox.DeleteString(3);
	CString str;
	m_combobox.GetLBText(1, str);

 

List Control:

报表模式:设置View为report

	CString str1[3] = { TEXT("姓名"), TEXT("性别"), TEXT("年龄") };
	for (int i = 0; i < 3; i++) {
		m_listCtrl.InsertColumn(i, str1[i], LVCFMT_LEFT, 100);//对齐方式 列宽
	}
	for (int i = 0; i < 10; i++) {
		CString str;
		str.Format(TEXT("张三_%d", i));
		m_listCtrl.InsertItem(i, str);

		m_listCtrl.SetItemText(i, 1, TEXT("男"));
		m_listCtrl.SetItemText(i, 2, TEXT("18"));
	}
	//设置属性 设置整行选中状态 显示网格
	m_listCtrl.SetExtendedStyle(m_listCtrl.GetExtendedStyle() | \
		LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES);

Tree Control

Lines At Root:根节点有线可以折叠。

Has Buttons:可以折叠

Has Lines:有虚线连接首尾

	//设置图标
	HICON icons[4];
	icons[0] = AfxGetApp()->LoadIconW(IDI_ICON1);
	icons[1] = AfxGetApp()->LoadIconW(IDI_ICON2);
	icons[2] = AfxGetApp()->LoadIconW(IDI_ICON3);
	icons[3] = AfxGetApp()->LoadIconW(IDI_ICON4);

	//CImageList list;需要保存,所以写到类成员里
	list.Create(30, 30, ILC_COLOR32, 4, 4);//创建图片集合
	for (int i = 0; i < 4; i++) {
		list.Add(icons[i]);
	}
	m_tree.SetImageList(&list, TVSIL_NORMAL); //设置图片集合
	
	//设置节点
	HTREEITEM root = m_tree.InsertItem(TEXT("根节点"), 0, 0, NULL);
	HTREEITEM parent = m_tree.InsertItem(TEXT("父节点"), 1, 1, root);
	HTREEITEM sub1 = m_tree.InsertItem(TEXT("子节点1"), 1, 1, parent);
	HTREEITEM sub2 = m_tree.InsertItem(TEXT("子节点2"), 1, 1, parent);

	m_tree.SelectItem(sub1); //设置默认项

切换选中时触发控件事件:TVN_SELCHANGED

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

	HTREEITEM item = m_tree.GetSelectedItem();
	CString name = m_tree.GetItemText(item);
	MessageBox(name);
}

Tab Control:

添加对应tab个数的Dialog并设置以下两项项:

Border:None 边框设置为无 

Style:Child 

添加导入重写完Tab Control的类,将此类和另外的Dialog添加为成员变量。

之后建立联系即可:

	m_tab.AddPage(TEXT("系统设置"), &d1, IDD_DIALOG3);
	m_tab.AddPage(TEXT("系统管理"), &d2, IDD_DIALOG4);
	//显示
	m_tab.Show();

 

测试的所有控件都写在了一个文件里:

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值