MFC---常用控件(下)(列表控件、树控件、标签控件)
  5Z6Aj0LQwRjK 2023年11月13日 20 0


列表控件 CListCtrl

MFC---常用控件(下)(列表控件、树控件、标签控件)_mfc

常用属性设置:view -> Report(报表方式)

常用接口

MFC---常用控件(下)(列表控件、树控件、标签控件)_ico_02

关联控件变量后,测试接口:

MFC---常用控件(下)(列表控件、树控件、标签控件)_c++_03

//设置风格样式
	//LVS_EX_GRIDLINES 网格
	//LVS_EX_FULLROWSELECT 选中整行
	m_list.SetExtendedStyle(m_list.GetExtendedStyle()
		| LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT);

	//插入标题
	CString head[] = { TEXT("姓名"), TEXT("年龄"), TEXT("性别") };

	//插入列
	m_list.InsertColumn(0, head[0], LVCFMT_LEFT, 100);
	m_list.InsertColumn(1, head[1], LVCFMT_LEFT, 100);
	m_list.InsertColumn(2, head[2], LVCFMT_LEFT, 100);

	//插入正文内容,先确定行,再确定列
	for (int i = 0; i < 10; i++)
	{
		CString str;
		str.Format(TEXT("张三_%d"), i );

		//确定行
		m_list.InsertItem(i, str);

		//设置列
		int j = 0;
		m_list.SetItemText(i, ++j, TEXT("男"));
		m_list.SetItemText(i, ++j, TEXT("23"));
	}

程序效果图:

MFC---常用控件(下)(列表控件、树控件、标签控件)_List_04

树控件 CTreeCtrl

MFC---常用控件(下)(列表控件、树控件、标签控件)_mfc_05

常用属性设置

MFC---常用控件(下)(列表控件、树控件、标签控件)_c++_06

常用接口

MFC---常用控件(下)(列表控件、树控件、标签控件)_控件_07

1)关联控件变量

MFC---常用控件(下)(列表控件、树控件、标签控件)_c++_08

2)添加图标资源(icon)

a)把ico资源文件放在项目res文件夹中

MFC---常用控件(下)(列表控件、树控件、标签控件)_List_09

b)资源视图 -> Icon -> 添加资源:

MFC---常用控件(下)(列表控件、树控件、标签控件)_控件_10

c)导入ico文件

MFC---常用控件(下)(列表控件、树控件、标签控件)_List_11


MFC---常用控件(下)(列表控件、树控件、标签控件)_c++_12

3)通过代码加载图标

//加载图标
HICON icon[3];
icon[0] = AfxGetApp()->LoadIconW(IDI_ICON1);
icon[1] = AfxGetApp()->LoadIconW(IDI_ICON2);
icon[2] = AfxGetApp()->LoadIconW(IDI_ICON3);

4)创建图像列表

a) .h 文件类中定义图形列表(CImageList)对象

CImageList m_imageList; //图像列表

b) OnInitDialog()函数中完成图像列表的创建、图标的追加

//图像列表,程序完毕不能释放, 创建
//30, 30: 图片的宽度和高度
//ILC_COLOR32:样式
// 3, 3: 有多少图片写多少
m_imageList.Create(30, 30, ILC_COLOR32, 3, 3);

//给图像列表添加图片
for (int i = 0; i < 3; i++)
{
	//图片列表加载图标
	m_imageList.Add(icon[i]);
}

5)树控件的相应操作

//树控件设置图片列表
m_treeCtrl.SetImageList(&m_imageList, TVSIL_NORMAL);

//给树创建节点
//根节点,父节点,子节点
HTREEITEM root = m_treeCtrl.InsertItem(TEXT(“中国”), 0, 0, NULL);
HTREEITEM fathter = m_treeCtrl.InsertItem(TEXT(“北京”), 1, 1, root);
HTREEITEM son = m_treeCtrl.InsertItem(TEXT(“海淀”), 2, 2, fathter);

//设置某个节点被选中
m_treeCtrl.SelectItem(fathter);

程序效果图:

MFC---常用控件(下)(列表控件、树控件、标签控件)_c++_13

树控件常用事件为:TVN_SELCHANGED,当选择某个节点时,自动触发此事件。

MFC---常用控件(下)(列表控件、树控件、标签控件)_List_14

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

	HTREEITEM selItem;
	//获得选择项
	selItem = m_treeCtrl.GetSelectedItem();
	//获取选中的内容
	CString cs = m_treeCtrl.GetItemText(selItem);
	MessageBox(cs);
}

标签控件 CTabCtrl

1)在ui工具箱拖放 Tab Control

MFC---常用控件(下)(列表控件、树控件、标签控件)_c++_15

2)把 TabSheet.h和TabSheet.cpp 放在项目文件同级目录,并且添加到工程目录中

MFC---常用控件(下)(列表控件、树控件、标签控件)_mfc_16

3)给ui上 Tab Control 关联Control类型(CTabSheet)

MFC---常用控件(下)(列表控件、树控件、标签控件)_mfc_17

4)添加对话框
a) 资源视图 -> Dialog -> 右击 -> 插入 Dialog
b) 设置相应属性:
Style -> Child (子窗口)
Border -> None (无边框)
c) 自定义类:点击对话框模板 -> 右击 -> 添加类(MyDlg1、MyDlg2)
d) 主对话框类中, 定义自定义类对象,需要相应头文件

MFC---常用控件(下)(列表控件、树控件、标签控件)_List_18

e) 主对话框类中 OnInitDialog() 做初始化工作

//给tab控件添加对话框
//IDD_DIALOG1为dlg1资源ID
	m_tabCtrl.AddPage(TEXT("系统管理"), &dlg1, IDD_DIALOG1); 

//IDD_DIALOG1为dlg2资源ID
	m_tabCtrl.AddPage(TEXT("系统设置"), &dlg2, IDD_DIALOG2); 

	//显示tab控件
	m_tabCtrl.Show();

程序效果图:

MFC---常用控件(下)(列表控件、树控件、标签控件)_ico_19


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月13日 0

暂无评论

推荐阅读
  8Tw5Riv1mGFK   20天前   31   0   0 C++
  BYaHC1OPAeY4   13天前   33   0   0 C++
  yZdUbUDB8h5t   16天前   22   0   0 C++
  oXKBKZoQY2lx   3天前   16   0   0 C++
5Z6Aj0LQwRjK