转:MFC 基于对话的程序界面显示完全后立即执行一个函数
2013-01-13 01:54
357 查看
基本上网上百度来的,和一些帖子里的讨论都是这两个方案。
1.可以在OnInitDialog最后用SetTimer
然后在onTimer里KillTimer,再执行函数
2.也可以在OnInitDialog最后用PostMessage让对话框响应一个函数去执行
但我认为,前者在时间设定上不好敲定,时间长短没有准确依据,如果CPU很忙,可能很长时界面也没显示出来呢。
后者倒是个好方法。
不过,在哪里PostMessage,也有很多说法。
OnInitDialog
OnPaint
int nResponse = dlg.DoModal();语句之后
这三处,经过我实际测试,只有第一处可行。
其它两个会不断的执行影响函数。当然,我小菜,也不知其所以然,呵呵。
还有一种说法是:
首次响应WM_PAINT:消息后就可以了
方法建一变量初始化为零(i = 0;),第一次wm_paint之后加一i++
WM_PAINT:
....;
if(i==0)
{
Func();
i++;
}
响应WM_PAINT消息
在 ::OnPaint()函数里执行你的函数,刚刚做了一个,你看看:
void CModelDlg::OnPaint()
{
CPaintDC dc(this); // device context for painting
ClickFirstLine();//你的函数
// Do not call CDialog::OnPaint() for painting messages
}
void CModelDlg::ClickFirstLine()
{
....
....
}
1.可以在OnInitDialog最后用SetTimer
然后在onTimer里KillTimer,再执行函数
2.也可以在OnInitDialog最后用PostMessage让对话框响应一个函数去执行
但我认为,前者在时间设定上不好敲定,时间长短没有准确依据,如果CPU很忙,可能很长时界面也没显示出来呢。
后者倒是个好方法。
不过,在哪里PostMessage,也有很多说法。
OnInitDialog
OnPaint
int nResponse = dlg.DoModal();语句之后
这三处,经过我实际测试,只有第一处可行。
其它两个会不断的执行影响函数。当然,我小菜,也不知其所以然,呵呵。
还有一种说法是:
首次响应WM_PAINT:消息后就可以了
方法建一变量初始化为零(i = 0;),第一次wm_paint之后加一i++
WM_PAINT:
....;
if(i==0)
{
Func();
i++;
}
响应WM_PAINT消息
在 ::OnPaint()函数里执行你的函数,刚刚做了一个,你看看:
void CModelDlg::OnPaint()
{
CPaintDC dc(this); // device context for painting
ClickFirstLine();//你的函数
// Do not call CDialog::OnPaint() for painting messages
}
void CModelDlg::ClickFirstLine()
{
....
....
}
相关文章推荐
- 一个简单的mfc单页界面文件读写程序(MFC 程序入口和执行流程)
- 一个简单的mfc单页界面文件读写程序(MFC 程序入口和执行流程)
- 大家来帮忙看看啊,为什么老是显示LINK : 没有找到 C:/Documents and Settings/Administrator/桌面/端口扫描/Debug/端口扫描.exe 或上一个增量链接没有生成它;正在执行完全链接
- 基于JavaScript实现一定时间后去执行一个函数
- 给基于对话框的MFC程序添加状态栏并实时显示时间
- 9.4 编写一个程序,通过执行结果分析在引用类对象时是否执行类的构造函数与析构 函数。
- 一个MFC小程序界面的实现思路(窗口分割)
- delphi执行一个外部程序,当外部程序结束后,delphi程序立即响应
- 基于VB6+ADO+ListView制作的一个数据库分页显示程序(完整原程序)
- 基于对话框程序,菜单项选中后前面显示一个钩子
- 基于VB6+ADO+ListView制作的一个数据库分页显示程序(
- 多种方法实现当jsp页面完全加载完成后执行一个js函数
- 基于vs2008的一个简单的多线程聊天程序(有界面)
- 在基于对话框的MFC程序中,使程序在任务栏中不显示图标
- 当页面完全加载完成后执行一个js函数
- 设计程序,单击【随机数】按钮,使用Math对象的random函数产生一个0-100之间(含0-100)的随机整数,并在对话框中显示,如下图。单击【计算】按钮,计算该随机数的平方、平方根和自然对数,保留两位小数,并在对话框中显示,如下图。
- MFC基于对话框的程序添加菜单&点击菜单弹出一个新的对话框
- vs2010 mfc添加一个管理员登录界面,登录成功显示主界面
- 一个简单的MFC柱状图显示程序
- 在基于对话框的MFC程序中,使程序在任务栏中不显示图标