MFC控件 简述

【静态文本框CStatic】

常用接口:
CWnd::SetWindowText 设置控件内容
CWnd::GetWindowText 获取控件内容
CStatic::SetBitmap 设置位图(后缀为bmp的图片)

//设置静态控件内容为Tom
m_label.SetWindowText(TEXT("Tom"));

//获取静态控件的内容
CString str;
m_label.GetWindowText(str);
MessageBox(str);

//设置静态控件窗口风格为位图居中显示
m_label.ModifyStyle(0xf, SS_BITMAP | SS_CENTERIMAGE);

//通过路径获取bitmap句柄
#define HBMP(filepath,width,height) (HBITMAP)LoadImage(AfxGetInstanceHandle(),filepath,IMAGE_BITMAP,width,height,LR_LOADFROMFILE|LR_CREATEDIBSECTION)

//静态控件设置bitmap
m_label.SetBitmap(HBMP(TEXT("./1.bmp"), 300, 250));

【普通按钮 CButton】

常用接口:
CWnd::SetWindowText 设置控件内容
CWnd::GetWindowText 获取控件内容
CWnd::EnableWindow 设置控件是否变灰

//获取按钮的内容
CString str;
m_button.GetWindowText(str);
MessageBox(str);

//设置按钮内容
m_button.SetWindowText(TEXT("^_^"));

//设置按钮状态为灰色
m_button.EnableWindow(FALSE);
m_button.EnableWindow(TRUE);

【编辑框CEdit】

常用属性设置:
Number True 只能输入数字
Password True 密码模式
Want return True 接收回车键,自动换行,只有在多行模式下,才能换行
Multiline True 多行模式
Auto VScroll True 当垂直方向字符太多,自动出现滚动条,同时设置Vertical Scroll才有效
Vertical Scroll True 当垂直方向字符太多,自动出现滚动条,和Auto VScroll配合使用
Horizontal Scroll True 当垂直方向字符太多,自动出现滚动条,和Auto HScroll配合使用
Read Only True 只读

常用接口:
CWnd::SetWindowText 设置控件内容
CWnd::GetWindowText 获取控件内容

 若编辑框的内容改变了,则应使用语句UpdateData(TRUE) 获取对话框数据
 若变量的值改变了,则应使用语句UpdateData(FALSE) 初始化对话框控件

【组合框(下拉框) CComboBox】

常用属性设置:
data 设置内容,不同内容间用英文的分号“;”分隔
type 显示风格
Sort True 内容自动排序

常用接口:
CComboBox::AddString 组合框添加一个字符串
CComboBox::SetCurSel 设置当前选择项(当前显示第几项),下标从0开始
CComboBox::GetCurSel 获取组合框中当前选中项的下标
CComboBox::GetLBText 获取指定位置的内容
CComboBox::DeleteString 删除指定位置的字符串
CComboBox::InsertString 在指定位置插入字符串

//添加字符串内容
m_combo.AddString(TEXT("可乐")); 
m_combo.AddString(TEXT("雪碧"));

m_combo.SetCurSel(1);//显示显示第1项

//获取组合框中当前选中项的下标
int index = m_combo.GetCurSel(); 
CString str;
m_combo.GetLBText(index, str); //获取指定下标的内容
MessageBox(str);

m_combo.DeleteString(0); //删除第0项字符串

m_combo.InsertString(0, _T("hello")); //在第0位置插入“hello”

组合框常用的事件为:CBN_SELCHANGE,当选择组合框某一项时,自动触发此事件。

【列表控件 CListCtrl】

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

常用接口:
CListCtrl::SetExtendedStyle 设置列表风格
CListCtrl::GetExtendedStyle 获取列表风格
CListCtrl::InsertColumn 插入某列内容,主要用于设置标题
CListCtrl::InsertItem 在某行插入新项内容
CListCtrl::SetItemText 设置某行某列的子项内容
CListCtrl::GetItemText 获取某行某列的内容

//设置风格样式
//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"));
}

【树控件 CTreeCtrl】

常用属性设置:
has buttons True 有展开按钮
has lines True 有展开线
lines at root True 有根节点

常用接口:
AfxGetApp() 获取应用程序对象指针
CWinApp::LoadIcon 加载自定义图标
CImageList::Create 创建图像列表
CImageList::Add 图像列表追加图标
CTreeCtrl::SetImageList 设置图形状态列表
CTreeCtrl::InsertItem 插入节点
CTreeCtrl::SelectItem 设置默认选中项
CTreeCtrl::GetSelectedItem 获取选中项
CTreeCtrl::GetItemText 获取某项内容

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

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

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

【标签控件 CTabCtrl】

你可能感兴趣的:(MFC,MFC,控件)