关于非模式对话框,他和模式对话框的区别,能不能搞个这方面的例子让我看一下。最好是从非模式对话框的创建开始。谢谢!

解决方案 »

  1.   

    模态对话框是指在关闭以前它一直掌握控制权的那种对话框,属性Visible选项为假,调用DoModal创建它;如打开和关闭文件时的那种。
    非模态对话框是指在关闭它之前可以获得控制权的那种对话框,属性Visible选项为真,调用Create创建它;QQ是也。
      

  2.   

    这里有个创建非摸态对话框的例子(摸态对话框就更简单了)
    http://www.yangning.com/cgi-bin/topic.cgi?forum=1&topic=85&show=0
      

  3.   

    赞成lizifong()的意见,我想举个例子帮助你理解一下吧,很简单的一个
    象一些比较大型的程序在运行之前如果需要处理大量数据进行初始化的时候,一般会在程序运行之前运行一个开始界面,象photoshop双击它马上就出现的那个等待界面,我想就可以把它理解为一个非模态对话框,它只是用来显示一个比较友好的界面,真正占用CPU的其实是后台的数据处理进程。但它不可能是一个模态对话框,因为模态对话框在运行的时候就必须要得到控制权,他调用的是DOMODAL函数,这个函数里面包含了一系列的初始化,都是由系统完成的
       CDialog::DoModal
            ::OnInitDialog
         ……其他初始化……
           CDialog::OnInitDialog
           CWnd::Updatedata(FALSE)
            ::DoDataExchange
      用户输入数据…
      用户单击OK按钮
            ::OnOK
    ……其他的确认处理……
         CDialog::OnOK
         CWnd::UpdateData(TRUE)
         ::DoDataExchange
         CDialog::EndDialog(IDOK)