MFC---常用控件(上)(静态文本框,普通按钮,编辑框)
  5Z6Aj0LQwRjK 2023年11月13日 16 0


静态文本框CStatic

静态文本框是最简单的控件,它主要用来显示文本信息,不能接受用户输入,一般不需要连接变量,也不需要处理消息。

静态文本框的重要属性有

  • ID:所有静态文本框的缺省ID都是IDC_STATIC,静态ID,不响应任何消息(事件)
  • Caption:修改显示的内容

常用接口

MFC---常用控件(上)(静态文本框,普通按钮,编辑框)_mfc

关联控件变量

由于XXX_STATIC静态ID是不能关联变量,故需把ID修改后,再关联变量:

MFC---常用控件(上)(静态文本框,普通按钮,编辑框)_mfc_02

MFC---常用控件(上)(静态文本框,普通按钮,编辑框)_编辑框_03

在主对话框类OnInitDialog()中,完成相应接口测试:

MFC---常用控件(上)(静态文本框,普通按钮,编辑框)_编辑框_04

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

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

	//用static_Text显示图片
	//设置静态控件窗口风格为位图居中显示 b
	m_pic.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_pic.GetWindowRect(rect);

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

普通按钮 CButton

MFC---常用控件(上)(静态文本框,普通按钮,编辑框)_编辑框_05

按钮是最常见的、应用最广泛的一种控件。在程序执行期间,当单击某个按钮后就会执行相应的消息处理函数。
按钮的主要属性是Caption,来设置在按钮上显示的文本。

命令按钮处理的最多的消息是:BN_CLICKED,双击按钮即可跳转到处理函数。或者,通过按钮属性 -> 控制事件 -> 选择所需事件,添加处理函数:

MFC---常用控件(上)(静态文本框,普通按钮,编辑框)_程序代码_06

//按钮BN_CLICKED事件处理函数
void CMFCApplication2Dlg::OnBnClickedButton1()
{
	// TODO:  在此添加控件通知处理程序代码
}

常用接口

MFC---常用控件(上)(静态文本框,普通按钮,编辑框)_编辑框_07

关联控件变量

MFC---常用控件(上)(静态文本框,普通按钮,编辑框)_程序代码_08

在主对话框类OnInitDialog()中,完成相应接口测试:

MFC---常用控件(上)(静态文本框,普通按钮,编辑框)_编辑框_09

//获取按钮的内容

CString str;
	m_button.GetWindowText(str);
	MessageBox(str);

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

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

编辑框CEdit

MFC---常用控件(上)(静态文本框,普通按钮,编辑框)_mfc_10

常用属性设置

MFC---常用控件(上)(静态文本框,普通按钮,编辑框)_c++_11

常用接口

MFC---常用控件(上)(静态文本框,普通按钮,编辑框)_mfc_12

关联变量

关联控件变量

MFC---常用控件(上)(静态文本框,普通按钮,编辑框)_控件_13

在主对话框类OnInitDialog()中,完成相应接口测试:

//设置按钮内容
	m_edit.SetWindowText(TEXT("this is a test"));

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

关联基本类型变量

MFC---常用控件(上)(静态文本框,普通按钮,编辑框)_程序代码_14

若一个编辑框连接了一个Value类别的变量,则该变量就表示这个编辑框,编辑框中显示的内容就是变量的值。

但是,改变了编辑框的内容并不会自动更新对应的变量的值,同样,改变了变量的值也不会自动刷新编辑框的内容。若要保持一致,需要使用UpdateData()函数更新:

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

MFC---常用控件(上)(静态文本框,普通按钮,编辑框)_程序代码_15

在主对话框类OnInitDialog()中,完成相应代码测试:

void CMy03EditCtrlDlg::OnBnClickedButton3()
{
	// TODO: 在此添加控件通知处理程序代码

	//利用关联value的方式 设置和改变edit的内容

	//设置内容
	m_text = TEXT("哈哈");

	//将变量内容同步到控件中
	UpdateData(FALSE);
}




void CMy03EditCtrlDlg::OnBnClickedButton4()
{
	// TODO: 在此添加控件通知处理程序代码
	//获取内容
	//将控件中的内容 同步到变量中
	UpdateData(TRUE);

	MessageBox(m_text);
}

组合框(下拉框) CComboBox

MFC---常用控件(上)(静态文本框,普通按钮,编辑框)_mfc_16

常用属性设置:

MFC---常用控件(上)(静态文本框,普通按钮,编辑框)_c++_17

常用接口:

MFC---常用控件(上)(静态文本框,普通按钮,编辑框)_控件_18

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

//添加字符串内容
	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,当选择组合框某一项时,自动触发此事件。

MFC---常用控件(上)(静态文本框,普通按钮,编辑框)_c++_19

void CMFCApplication2Dlg::OnCbnSelchangeCombo1()
{
	// TODO:  在此添加控件通知处理程序代码
}


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