MFC,实现消息框自动倒计时的功能...
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MFC,实现消息框自动倒计时的功能...相关的知识,希望对你有一定的参考价值。
小弟不才,最近在学MFC,想做一个消息自动倒计时的功能,想了很久就是不知道要怎么做...MessageBox产生的消息框,在消息框上显示 10秒,9秒。。。然后,到0秒的时候,自动关闭消息窗口??谢谢
感谢二楼的回答,可你好像是误解的的提问的原意了吧....我要做的是一个消息框.
你直接做个小的对话框,
然后在对话框的ON_TIMER消息里面做这个就行了
好吧,你如果要这样做的话稍微麻烦点
得到MessageBox窗口,得到它的窗口指针
开启一个单独的线程,通过这个窗口指针来操作,
你觉得哪个简单呢! 参考技术A 先作一个对话框,在对话框上添加一个控件(如EditBox),在这个控件上显示时间、先取得开始倒计时的系统时间t,开始计时以后的时间T,则10-(T-t)的值即为倒计时,把它显示在控件上,并隔一秒刷新一下。 参考技术B 先打开资源
然后 菜单-》格式-》Tab键顺序。
将这个控件的Tab顺序优先。 参考技术C 消息框是很难更改的,二楼说的是正解。。你想要做的应该就是一个倒计时的面板吧?
2创建MFC应用程序——基于对话框,时间计时器
使用计时器更新MFC界面时间,频率1s。
文件——新建项目——MFC应用程序,下一步,选择基于对话框,其他默认,完成。
双击窗体(或者鼠标右键)进入类向导,自动创建Ontimer()函数
void CMFCApplication8Dlg::OnTimer(UINT_PTR nIDEvent) { // TODO: 在此添加消息处理程序代码和/或调用默认值 CTime time = CTime::GetCurrentTime();//获取当前时间 CString str; str.Format(_T("%d年%2d月%2d日 %2d:%2d:%2d"), time.GetYear(), time.GetMonth(), time.GetDay(), time.GetHour(), time.GetMinute(), time.GetSecond()); SetDlgItemText(IDC_EDIT1, str);//在文本框中显示str结果 CDialogEx::OnTimer(nIDEvent); }
// CMFCApplication8Dlg 消息处理程序
BOOL CMFCApplication8Dlg::OnInitDialog()中添加
SetTimer(1, 1000, NULL);//计时器1,1000ms触发一次OnTimer()函数
以上是关于MFC,实现消息框自动倒计时的功能...的主要内容,如果未能解决你的问题,请参考以下文章
MFC 中,按钮和其他(比如:图片框、列表框)控件怎么响应鼠标移动消息?