首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

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

2012-03-15 
对话框的销毁在对话框中,搞不清点击 OnOk , OnCancel 和 关闭X 的区别EndDialog和DestoryWindow有什么区别

对话框的销毁
在对话框中,搞不清点击 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

热点排行