这是我自己用VS2010制作的简易数字时钟小软件,在制作过程中收获知识不少,希望和初学MFC编程的朋友分享一下。
一、其功能有一下三点:
1.打开软件后,其程序自动获取当前电脑系统的日期、时间和周次,并同步显示在主对 话框上;
2.点击“设置时间”按钮,弹出设置时间子对话框,在其中可以设置自己想设置的时间 (采用24小时格式制)。若输入的内容和格式都合法则主对话框显示此时间,并依此时 间运行;若输入的内容和格式不合法则会弹出提示消息框。
3.点击“退出”按钮,则会弹出提示消息框,询问用户是否退出系统。
二、制作过程:
1.新建一个项目名为SetTime的MFC对话框应用程序,在主对话框的属性中修改其标题为“数字显示时间”。
2.在主对话框上添加3个静态文本控件、3个编辑框控件和2个按钮控件。在3个编辑框的属性中修改其ID分别为IDC_DATE、IDC_WEEK、IDC_TIME,编辑框文本都设置为居中显示,其中日期和周次编辑框属性设置为只读。2个按钮的ID分别修改为IDC_SETTIME、IDC_EXIT;
3.在类向导中,选择类名CSetTimeDlg,在成员变量中通过添加变量为三个编辑框分别关联对应都为CString类型的变量m_Date、m_Week、m_Time,还要为IDC_DATE编辑框关联CEdit类的对象m_ShowDate;还要为CSetTimeDlg类自定义3个unsigned char类型的变量m_Hour、m_Minute、m_Second。
4.在CSetTimeDlg::OnInitDialog()函数的// TODO: 在此添加额外的初始化代码,其位置下方添加下列代码:
注意:1).在主对话框上要调好三个编辑框的尺寸大小;特别是显示当前时间的编 辑框,其显示文本字体较大。
2).因为显示当前时间编辑框设置了焦点,所以最后return TRUE;要修改为return FALSE。
5.在类向导中,选择类名CSetTimeDlg,在消息中选择WM_TIMER消息并添加其处理程序,编辑代码进入CSetTimeDlg::OnTimer(UINT_PTR nIDEvent)函数,在其函数中添加下列代码:
6.在类向导中,添加新类(以CDialogEx为基类派生出子类CSubDialogEx),自动会插入一个对话框。在这个对话框中添加1个编辑框,2个按钮(默认是自动添加的)。修改这个编辑框ID为IDC_SUBEDIT,并为其关联CString类型变量m_SubTime;在CSubDialogEx::OnInitDialog()函数中// TODO: 在此添加额外的初始化,位置下方添加下列代码:
7.在类向导中,选择类名CSetTimeDlg,在命令--对象ID中选择IDC_SETTIMER消息,在其右边消息选择BN_CLICKED,然后添加其处理程序,编辑代码。
在CSetTimeDlg::OnClickedSettime()函数中,添加下列代码:
8.在类向导中,选择类名CSetTimeDlg,在命令--对象ID中选择IDC_EXIT消息,在其右边消息选择BN_CLICKED,然后添加其处理程序,编辑代码。
在CSetTimeDlg::OnClickedExit()函数中,添加下列代码:
9.编译运行项目后结果如下图:
10.单击“设置时间”按钮,可以重新设置时间,如下图:
如果设置时间内容和格式非法,则会弹出如下图:
单击“退出”按钮,弹出如下图:
三、总结:
1.学习基本控件知识;
2.学习在主对话框中调用子对话框的方法;
3.学习定时器的知识;