读书人

对话框的销毁,该怎么处理

发布时间: 2012-03-15 11:50:38 作者: rapoo

对话框的销毁
在对话框中,搞不清点击 OnOk , OnCancel 和 关闭X 的区别

EndDialog和DestoryWindow有什么区别?

求指教


[解决办法]
EndDialog 在DestoryWindow之前允许处理完没处理的消息
[解决办法]
对话框上点击"X"关闭按钮会调用OnCancel虚函数
OnCancel里会调用CDialog::EndDailog函数,最终会调用API函数EndDialog

C/C++ code
void CDialog::EndDialog(int nResult){    ASSERT(::IsWindow(m_hWnd));    if (m_nFlags & (WF_MODALLOOP|WF_CONTINUEMODAL))        EndModalLoop(nResult);    ::EndDialog(m_hWnd, nResult);}
[解决办法]
如果是你Dlg用DoModal()起的话,能够看到它返回值OnOk , OnCancel 和 关闭X 是不一样的。这几个消息都是可以重写的。。如果没重写,貌似系统默认都是直接调用EndDialog().

EndDialog 是CDialog的响应函数
DestoryWindow 是窗口的销毁消息。。你可以理解成CWnd的消息
[解决办法]
http://hi.baidu.com/wo56872095/blog/item/324730f095879e7bddc474ac.html

读书人网 >VC/MFC

热点推荐