上一篇:MFC界面编程基础(11):静态文本框、命令按钮和编辑框 | 下一篇:MFC界面编程基础(13):列表框和组合框 |
---|
组框、单选按钮和复选框都是对话框的常见控件。组框与静态文本框一样是CStatic类的对象,单选按钮和复选框与命令按钮一样都是CButton类的对象。
当对话框上控件较多时,可以使用组框将一组相关的控件框起来,达到标识一组控件的作用。组框不需要连接变量,也不需要处理消息。组框的重要属性有:
void CheckRadioButton(int nIDFirstButton, int nIDLastButton, int nIDCheckButton);
说明:
①:nIDFirstButton 是一组中第一个单选按钮的 ID ;
②:nIDLastButton 是一组中最后一个单选按钮的 ID ;
③:nIDCheckButton 为初始时设置为选中的那个单选按钮的 ID 。
UINT IsDlgButtonChecked( int nIDButton ) const;
说明:如果 ID 为 nIDButton 的按钮被选定,则该函数的返回值为 true ,否则为 false 。
设计一个如图所示的程序。当单击“ 确定 ”后,用 MessageBox 函数显示一个如图所示的消息框。
分组
例:将radio1、radio2分为1组,radio3、radio4、radio5分为另一组;
分组方法:
第一组:
设置 radio1 的属性:group设置为true.
设置 radio2 的属性: group设为false
第二组:
设置 radio3 的属性:group设置为true
设置 radio4 的属性:group设为false
界面设计
首先创建一个对话框程序框架,然后放置各控件,进行属性设置,将编辑框连接到 CString 类型的 m_edit 变量,其余控件不需要连接变量。将“男”和“教授”对应的单选钮的Group属性勾上。
初始化
单选按钮的初始化工作在对话框的初始化函数实现。
BOOL CTESTDlg::OnInitDialog()
{
┆
CheckRadioButton(IDC_RADIO1, IDC_RADIO2, IDC_RADIO1); //
CheckRadioButton(IDC_RADIO3, IDC_RADIO5, IDC_RADIO4);
┆
};
void CTESTDlg::OnButton1()
{
// TODO: Add your control notification handler code here
//将控件中的数据更新到变量中
UpdateData(TRUE);
CString s;
s += m_edit;
if (IsDlgButtonChecked(IDC_RADIO1))
{
s += " 男 ";
}
else if (IsDlgButtonChecked(IDC_RADIO2))
{
s += " 女 ";
}
if (IsDlgButtonChecked(IDC_RADIO3))
{
s += " 教授 ";
}
else if (IsDlgButtonChecked(IDC_RADIO4))
{
s += " 副教授 ";
}
else
{
s += " 讲师 ";
}
MessageBox(s);
}
设计一个如图所示的程序。当单击“确定”后,在右边的编辑框中显示有关信息。
void CTESTDlg::OnButton1()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
CString s;
s = m_e1;
s += " 爱好 :\r\n";
if (m_c1) s += " 旅游\r\n";
if (m_c2) s += " 运动\r\n";
if (m_c3) s += " 音乐\r\n";
m_e2 = s;
UpdateData(FALSE);
}
对话框是 Windows 应用程序中最常用的一种与用户交互的方式。用户通过对话框输入数据,程序通过对话框显示执行的情况。
设计如图所示的对话框。若选定了“日期”或“时间”复选框,则在对应的只读编辑框中显示系统当前日期或时间。
分析: CTime 是 MFC 中的一个类,封装了日期和时间。它有一个静态成员 GetCurrentTime() ,返回系统当前的日期和时间。
实现:
…………………………………………………………
void CTESTDlg::OnCheck1()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
if(m_k1==TRUE)
{
CTime time=Ctime::GetCurrentTime(); // 构造“ YYYY.MM.DD ”形式的日期字符串
m_e1=time.Format("%Y.%m.%d");
}
else
m_e1="";
UpdateData(FALSE);
}
…………………………………………………………
void CTESTDlg::OnCheck2()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
if(m_k2==TRUE)
{
CTime time=Ctime::GetCurrentTime(); // 构造“ HH:MM:SS ”形式的时间字符串
m_e2=time.Format("%H:%M:%S");
}
else
m_e2="";
UpdateData(FALSE);
}
…………………………………………………………
上一篇:MFC界面编程基础(11):静态文本框、命令按钮和编辑框 | 下一篇:MFC界面编程基础(13):列表框和组合框 |
---|