如何MFC 基于对话的程序界面显示完全后立即执行
我是想说等这个程序界面完全显示出来以后,立即去运行一个函数,然后还有一个进度条显示执行的。如果把我要执行的函数放在OnInitDialog()中的话,对话框还没有显示出来...
我是想说等这个程序界面完全显示出来以后,
立即去运行一个函数,然后还有一个进度条显示执行的。
如果把我要执行的函数放在OnInitDialog()中的话,
对话框还没有显示出来函数就运行了。
请问有什么方法来做呢?谢谢大家!
找到解决办法了,谢谢大家了,PostMessage搞定的,方法是百度来的
http://wmnmtm.blog.163.com/blog/static/3824571420097510938616/ 展开
立即去运行一个函数,然后还有一个进度条显示执行的。
如果把我要执行的函数放在OnInitDialog()中的话,
对话框还没有显示出来函数就运行了。
请问有什么方法来做呢?谢谢大家!
找到解决办法了,谢谢大家了,PostMessage搞定的,方法是百度来的
http://wmnmtm.blog.163.com/blog/static/3824571420097510938616/ 展开
2011-06-13
展开全部
可以在OnInitDialog最后用SetTimer
然后在onTimer里KillTimer,再执行函数
也可以在OnInitDialog最后用PostMessage让对话框响应一个函数去执行
然后在onTimer里KillTimer,再执行函数
也可以在OnInitDialog最后用PostMessage让对话框响应一个函数去执行
追问
也可以在OnInitDialog最后用PostMessage让对话框响应一个函数去执行
能给出基本代码吗,我是刚学。
追答
BOOL CTest1Dlg::OnInitDialog()
{
CDialog::OnInitDialog();
SetTimer(9, 1000*2, NULL);//过2秒触发ontimer
return TRUE; // return TRUE unless you set the focus to a control
}
//此函数在classwizard里添加即可自动生成
void CTest1Dlg::OnTimer(UINT nIDEvent)
{
if(nIDEvent == 9)
{
KillTimer(9);
//然后执行你的函数
}
CDialog::OnTimer(nIDEvent);
}
/*PostMessage需要自己定义一个ID,
然后在BEGIN_MESSAGE_MAP(CIceManagerDlg, CDialog)里添加事件响应函数映射
然后定义一个函数
比较麻烦...
当然,如果是现成的一个菜单(比如IDM_HIDEME)或按钮,会容易点
PostMessage(WM_COMMAND,IDM_HIDEME,0);
*/
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询