MFC基本控件的使用

文章目录

        • 1、基于对话框学习控件
        • 2、CStaticText 静态文本
        • 3、EditCtrl 属性
        • 4、下拉框Combo Box
        • 5、ListControl列表控件

1、基于对话框学习控件

1.1 对话框 模态非模态
1.2 按钮 两个 captain修改内容 直接输入内容
1.3 点击触发事件 右侧属性 闪电图标 ; 右键按钮 添加事件处理程序 ; 双击按钮
1.4 插入窗口 窗口 右键 添加类
1.5 模态窗口创建 CDlgExec dlg
1.5.1 dlg.DoModal()
1.6 非模态创建
1.6.1 CDlgShow dlg 写到.h做成员
1.6.2 dlg.Create 写到初始化 oninitDialog 保证只创建一次
1.6.3 dlg.showWindow()

//模态对话框按钮的点击事件
void CMy01CDilalogDlg::OnBnClickedButton1()
{
	// TODO: 在此添加控件通知处理程序代码

	//弹出模态对话框类
	CDilgExec dlg;
	dlg.DoModal();
}

//非模态对话框的点击事件
void CMy01CDilalogDlg::OnBnClickedButton2()
{
	// TODO: 在此添加控件通知处理程序代码
	//弹出非模态对话框 在这里使用一闪而过
	//CDilgShow dlg;
	//创建
	//dlg.Create(IDD_SHOW);  //创建窗口只能创建一次,多次就会蹦掉
	//显示
	dlg.ShowWindow(SW_SHOWNORMAL);
}
2、CStaticText 静态文本

2.1 添加变量 以STATIC为结尾的ID是不可以添加变量,需要修改ID
2.2 设置内容 setWindowTextW
2.3 获取内容 getWindowTextW 按钮也一样
2.4 利用静态文本显示图片
2.4.1 bmp图片
2.4.2 #define HBMP(filepath,width,height) (HBITMAP)LoadImage(AfxGetInstanceHandle(),filepath,IMAGE_BITMAP,width,height,LR_LOADFROMFILE|LR_CREATEDIBSECTION)
2.4.3 m_pic.SetBitmap(HBMP(TEXT("./1.bmp"), rect.Width(), rect.Height()));
2.5 如何禁用按钮
2.5.1 EnableWindow(FALSE)禁用

//设置哈哈为呵呵
void CMy02CStaticTextDlg::OnBnClickedButton1()
{
	// TODO: 在此添加控件通知处理程序代码
	m_text.SetWindowTextW(TEXT("呵呵"));

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

	//通过路径获取bitmap句柄
 #define HBMP(filepath,width,height) (HBITMAP)LoadImage(AfxGetInstanceHandle(),filepath,IMAGE_BITMAP,width,height,LR_LOADFROMFILE|LR_CREATEDIBSECTION)
 //宽高设置 应该按照 控件的大小取设置
	CRect rect;
	m_picc.GetWindowRect(rect);

	//静态控件设置bitmap
	//m_picc.SetBitmap(HBMP(TEXT("./1.bmp"), 300, 250));
	m_picc.SetBitmap(HBMP(TEXT("./1.bmp"), rect.Width(), rect.Height()));
}

//获取里面的内容
void CMy02CStaticTextDlg::OnBnClickedButton2()
{
	// TODO: 在此添加控件通知处理程序代码
	CString str;
	m_text.GetWindowTextW(str);
	MessageBox(str, TEXT("静态控件里面的内容"));
}


void CMy02CStaticTextDlg::OnBnClickedButton3()
{
	// TODO: 在此添加控件通知处理程序代码
	//点击按钮 修改显示内容
	m_bta.SetWindowTextW(TEXT("<(* ̄▽ ̄*)/"));

	//获取里面的内容
	CString str;
	m_bta.GetWindowTextW(str);
	MessageBox(str, TEXT("修改按钮的内容"));

	//设置点击的状态
	m_bta.EnableWindow(FALSE);
}
3、EditCtrl 属性

3、EditCtrl 属性
3.1.1 mutiline多行
3.1.2 want return 编辑框接受回车
3.1.3 滚动条 无限横向 纵向的输入
3.2 getWindowText setWIndowText 设置和获取值
3.3 默认小bug 单行点击回车就退出
3.3.1 重写OnOk 注释掉里面的代码
3.4 退出当前对话框
3.4.1 CDialog::OnOk() OnCancel()
3.5 添加变量时候 选择 value
3.6 本身关联的变量 就是那个值
3.7 UpdateData(TURE)
3.7.1 将控件的内容 同步到变量中

4、下拉框Combo Box

4.1 属性中加入数据 data ;进行分割
4.2 默认排序 sort 修改false不排序了
4.3 type 类型 DropList不可以编辑 Dropdown可以进行编辑
4.4 添加 AddString
4.5 删除 DeleteString
4.6 插入InsertString
4.7 设置默认选项 setCurSel
4.8 获取当前索引 getCurSel
4.9 根据索引获取内容 getLBText(索引,CString str)
4.10 控件事件 OnCbnSelchangeCombo1

OnInitDialog()初始化下:
//下拉框添加
	m_combox.AddString(TEXT("唐僧"));
	m_combox.AddString(TEXT("孙悟空"));
	m_combox.AddString(TEXT("猪八戒"));
	m_combox.AddString(TEXT("沙僧"));
	
	//设置默认选项
	m_combox.SetCurSel(0);

	//向索引为1的插入数据
	m_combox.InsertString(1,TEXT("白龙马")); 

	//删除索引为2的数据
	m_combox.DeleteString(2);

	//获取1号的索引的具体内容
	CString str;
	m_combox.GetLBText(1, str);
	MessageBox(str,TEXT("内容"));

void CcomboxBoxctrlDlg::OnCbnSelchangeCombo1()
{
	// TODO: 在此添加控件通知处理程序代码
	//拿到索引的位置
	int index = m_combox.GetCurSel();
	CString str;
	m_combox.GetLBText(index, str);

	MessageBox(str);
}

5、ListControl列表控件

5.1 属性view 报表模式 Report
5.2 添加表头 InsertCol
5.3 添加正文 从0索引
5.4 添加第一行第一列 InsertItem(0, “张三”);
5.5 添加第一行的其他列 setItemText( 行,列,具体内容)
5.6 设置风格 整行选中 网格显示
m_list.SetExtendedStyle(m_list.GetExtendedStyle() | LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES);

//列表控件使用
	CString str[] = { TEXT("姓名"),TEXT("性别"),TEXT("年龄") };
	for(int i = 0; i < 3; i++)
	{
		m_List.InsertColumn(i, str[i], LVCFMT_LEFT, 150);
	}
	//设置正文
	//设置不算正文里的内容,索引从0开始
	m_List.InsertItem(0, TEXT("张三"));
	//给这个Item插入其他列的数据
	m_List.SetItemText(0, 1, TEXT("男"));
	//循环插入数据
	//int j;
	//for (int i = 0; i < 10; i++)
	//{
	//	j = 0;
	//	CString name;
	//	name.Format(TEXT("张三—%d"), i);
	//	m_List.InsertItem(i, name);
	//	//姓名和年龄
	//	m_List.SetItemText(i,++j, TEXT("男"));

	//	m_List.SetItemText(i, ++j, TEXT("22"));
	//}

	//设置属性 整行选中状态,显示网站
	m_List.SetExtendedStyle(m_List.GetExtendedStyle()|LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);

你可能感兴趣的:(VS,2017/MFC)