静态文本框CStatic
静态文本框是最简单的控件,它主要用来显示文本信息,不能接受用户输入,一般不需要连接变量,也不需要处理消息。
静态文本框的重要属性有
- ID:所有静态文本框的缺省ID都是IDC_STATIC,静态ID,不响应任何消息(事件)
- Caption:修改显示的内容
常用接口
关联控件变量
由于XXX_STATIC静态ID是不能关联变量,故需把ID修改后,再关联变量:
在主对话框类OnInitDialog()中,完成相应接口测试:
//设置静态控件内容为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
按钮是最常见的、应用最广泛的一种控件。在程序执行期间,当单击某个按钮后就会执行相应的消息处理函数。
按钮的主要属性是Caption,来设置在按钮上显示的文本。
命令按钮处理的最多的消息是:BN_CLICKED,双击按钮即可跳转到处理函数。或者,通过按钮属性 -> 控制事件 -> 选择所需事件,添加处理函数:
//按钮BN_CLICKED事件处理函数
void CMFCApplication2Dlg::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
}
常用接口
关联控件变量
在主对话框类OnInitDialog()中,完成相应接口测试:
//获取按钮的内容
CString str;
m_button.GetWindowText(str);
MessageBox(str);
//设置按钮内容
m_button.SetWindowText(TEXT("^_^"));
//设置按钮状态为灰色
m_button.EnableWindow(FALSE);
编辑框CEdit
常用属性设置
常用接口
关联变量
关联控件变量
在主对话框类OnInitDialog()中,完成相应接口测试:
//设置按钮内容
m_edit.SetWindowText(TEXT("this is a test"));
//获取按钮的内容
CString str;
m_edit.GetWindowText(str);
MessageBox(str);
关联基本类型变量
若一个编辑框连接了一个Value类别的变量,则该变量就表示这个编辑框,编辑框中显示的内容就是变量的值。
但是,改变了编辑框的内容并不会自动更新对应的变量的值,同样,改变了变量的值也不会自动刷新编辑框的内容。若要保持一致,需要使用UpdateData()函数更新:
- 若编辑框的内容改变了,则应使用语句UpdateData(TRUE) 获取对话框数据
- 若变量的值改变了,则应使用语句UpdateData(FALSE) 初始化对话框控件
在主对话框类OnInitDialog()中,完成相应代码测试:
void CMy03EditCtrlDlg::OnBnClickedButton3()
{
// TODO: 在此添加控件通知处理程序代码
//利用关联value的方式 设置和改变edit的内容
//设置内容
m_text = TEXT("哈哈");
//将变量内容同步到控件中
UpdateData(FALSE);
}
void CMy03EditCtrlDlg::OnBnClickedButton4()
{
// TODO: 在此添加控件通知处理程序代码
//获取内容
//将控件中的内容 同步到变量中
UpdateData(TRUE);
MessageBox(m_text);
}
组合框(下拉框) CComboBox
常用属性设置:
常用接口:
关联控件变量后,测试接口:
//添加字符串内容
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,当选择组合框某一项时,自动触发此事件。
void CMFCApplication2Dlg::OnCbnSelchangeCombo1()
{
// TODO: 在此添加控件通知处理程序代码
}