关于DESTROYWINDOW函数和窗口的问题

woaini5994 2003-08-23 10:37:30
我在创建mfc应用程序,想利用DestroyWindow();这个函数来实现主框架窗口的退出,在
void CMainFrame::OnExit()
{
// TODO: Add your command handler code here
DestroyWindow();

}
的时候功能可以实现,但是在对话框的一个按钮控件中实现应用程序的退出的时候也是利用上面的方法,
但是不好用,是不是因为对话框窗口是弹出窗口,Destroywindow();只是对主框架窗口才会起作用。
我觉得主框架窗口和对话框窗口都是MFC的窗口,为什么会有这样的区别呢?请具体解答一下
...全文
233 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
houdy 2003-08-25
  • 打赏
  • 举报
回复
对于模式对话框,CDialog::EndDialog()就可以结束模式循环。但结束模式循环后,还必须调用DestoryWindow()销毁对话框,这个工作在DoModal()退出前已经完成。
但如果使用CDialog::Create()创建了一个非模态对话框,就不得不直接或简介调用EndDialog()关闭对话框后,亲自调用DestoryWindow().
对于一般的窗口,调用DestroyWindow()销毁。
houdy 2003-08-24
  • 打赏
  • 举报
回复
对话框可以用EndDialog().
主框架和对话框都有自己的响应的消息处理函数来响应关闭函数的,你大可不必知道怎样销毁,只要发送WM_CLOSE消息,就会有响应的函数处理的。
其实,一般窗口的销毁可以用DestoryWindow(),对话框的销毁可以用EndDialiog().
  • 打赏
  • 举报
回复
EndDialog(IDOK);
DoModal()的返回值为IDOK,但不会执行用户定义的OnOK.
  • 打赏
  • 举报
回复
void CTestDialog::OnButton1()
{
EndDialog(IDOK);//IDCANCEL 也可以
}
  • 打赏
  • 举报
回复
void CTestDialog::OnButton1()
{
PostMessage(WM_CLOSE);
}

void CTestDialog::OnButton1()
{
SendMessage(WM_CLOSE);
}
都可以

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧