CDialog::OnOK()在OK按钮消息处理函数的最后一样,它是干什么用的

CDialog::OnOK()在OK按钮消息处理函数的最后一样,它是干什么用的,第1张

你问的应该是你自己的Dialog类中,对于OK按钮的山键肢响应CMyDialog::OnOK函数中的一段代码,这段代码最后有一行是 CDialog::OnOK();

这行之前是你自己的逗世处理函数,

这行调用基类的OnOK函数,基类中就执行了EndDialog(IDOK),作用是关闭对话框,亮裂并把IDOK作为对话框的返回值,返回给调用对话框(DoModal)的地方

你的需求,应该是需虚汪败要一个进度条类的控件实现最好。

创建一个对话框,对话框放置一个Process控件(进度条)陵宽,

对话框非模态创建,任务进行中,发送进度百分比,当任务执行完毕后,关闭对话框。

当然,如果不需要进度显示,直接一个非差颤模态对话框,里面一个静态文本提示就可以了。

1. EndDialog()是CDialog中的一个成员函数,OnOK其实最后也是调用了它,而在EndDialog()这个函数中,MFC又调友族用了WIN API中的全局函数::EndDialog(m_hWnd, ONOK)。

2. 其实这桥察个比较生僻的地方。我们知道MFC是封装了WINDOWS API的,其实CDialog这个类并没有能力自己去创建一个窗口,而必须通过调用API去创建然后把它的句柄保存起来,以备管理。从而敏告茄当一个CDialog所管理的窗口被关闭之后,CDialog本身依然存在,只不过它引用的句柄已经失效了。而我们知道DoModal这个函数是用来创建并关联窗口的,所以你说的情况不会存在。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8187815.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-14
下一篇2023-04-14

发表评论

登录后才能评论

评论列表(0条)

    保存