模态窗口和非模态窗口的区别

来源:互联网 发布:ubuntu kylin 编辑:程序博客网 时间:2024/05/21 09:17

        网上看了很多关于模态和非模态窗口区别以及如何彻底释放资源的文章,总体意思都差不多,经过自己整理并测试以后,将总结的内容记录下来,以便日后回顾。

       1、 创建

        模态对话框:独占用户的输入,在完成本对话框之前,用户无法对本程序的其他部分进行操作,模态对话框使用DoModal函数创建。

        非模态对话框:打开非模态对话框的同时可以切换到其他窗口进行操作,非模态对话框使用Create函数创建,由于Create函数不会启动新的消息循环,对话框与父窗口共用一个消息循环,不会独占用户输入。

    2、销毁
    模态对话框:关闭窗口后,自动调用释放窗口资源,调用onclose()->destroywindow()->postncdestroy()
    非模态对话框:关闭窗口后,只是调用了onclose(),窗口被隐藏但未被销毁,需要手动调用释放资源
    void DlgFloat::PostNcDestroy()    {       CDialog::PostNcDestroy();       delete this;     }
http://wenku.baidu.com/view/f72860fe04a1b0717fd5ddc1.html
http://wenku.baidu.com/view/8cd589c55fbfc77da269b13b.html
原创粉丝点击