如何MFC 基于对话的程序界面显示完全后立即执行

我是想说等这个程序界面完全显示出来以后,立即去运行一个函数,然后还有一个进度条显示执行的。如果把我要执行的函数放在OnInitDialog()中的话,对话框还没有显示出来... 我是想说等这个程序界面完全显示出来以后,
立即去运行一个函数,然后还有一个进度条显示执行的。

如果把我要执行的函数放在OnInitDialog()中的话,
对话框还没有显示出来函数就运行了。

请问有什么方法来做呢?谢谢大家!
找到解决办法了,谢谢大家了,PostMessage搞定的,方法是百度来的
http://wmnmtm.blog.163.com/blog/static/3824571420097510938616/
展开
 我来答
匿名用户
2011-06-13
展开全部
可以在OnInitDialog最后用SetTimer
然后在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);

*/
swjtuzwj
2011-06-13
知道答主
回答量:48
采纳率:0%
帮助的人:27.2万
展开全部
没有完全理解你的问题,但是函数与程序界面应该是同时进行的,如果要强制函数在程序界面显示之后运行可以添加时间计时器或者添加一个按钮之类。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
slwfly
2011-06-13
知道答主
回答量:26
采纳率:0%
帮助的人:23.9万
展开全部
a()
b()
c()
a()
{
b()
c()
}这样不知道行不行,mfc有回调么?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式