如何在执行完OnInitDialog()后执行某一个函数? dlg.DoModal()调用完OnInitDialog()初始化完对话框之后,我想调用一个函数。对话框上没有按钮,所以怎么才能初始化万对话框后,调用一个函数哪? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你就放在OnInitDialog里面调用啊。 在OnInitDialog返回之前调用你的函数不行吗? 一般的,当你不想在OnInitDialog()函数中调用函数时,你可以在OnInitDialog函数结束返回之前发送一个自定义的消息,利用你的消息处理函数来执行你的函数。注意要使用PostMessage而不是SendMessage,否则和在OnInitDialog函数内部执行你的附加函数是一样的效果哦!如果你的附加函数需要执行长时间的操作,同样会使界面“假死”,此时只能使用工作线程来解决了! 我以前有过类似的需求,我的办法是在第一个WM_PAINT消息里执行那个函数。先定义一个全局变量比如:int test=1在WM_PAINT消息里:if (test == 1){ 执行你的函数}test++;if (test>2)test = 2;............ 我利用timer实现了。但存在一个问题,用户调用的只是一个创建对话框的函数,它返回给用户“1”。而我想返回给用户的是timer中的那个函数的执行结果。现在无法把它返回给用户了,怎么办哪? 1 直接在OnInitDialog最后调用2 发送自定义的消息,用ON_MESSAGE设置这个消息的相应函数为你要调用的就可以了 error C2146: 语法错误 : 缺少“;”(在标识符“m_LoginDlg”的前面) MFC小试身手,运行时出现内存错误 用vs2008编译的dll,用vs2003可以用么? 文件格式的转换,对文件逐行处理! 矩形里有多行文字,矩形变化后,如何改变字体使内容相对矩形框不变 vc 中 怎么样把web中的 ISO-8859-1 编码 转为 中文 菜鸟有问题需您帮助解决 如何绘制平行线? 寻VC比较厉害的人物,交个朋友,互相切磋。 任务栏上的程序的图标叫什么20,如何去掉80 在线等!!请问在ado中使用Execute,需要释放记录集吗? 九九思不得其解.....
如果你的附加函数需要执行长时间的操作,同样会使界面“假死”,此时只能使用工作线程来解决了!
先定义一个全局变量比如:int test=1
在WM_PAINT消息里:
if (test == 1)
{
执行你的函数
}
test++;
if (test>2)
test = 2;
............
但存在一个问题,用户调用的只是一个创建对话框的函数,它返回给用户“1”。
而我想返回给用户的是timer中的那个函数的执行结果。
现在无法把它返回给用户了,怎么办哪?
2 发送自定义的消息,用ON_MESSAGE设置这个消息的相应函数为你要调用的就可以了