小女子初学vc,想请问C++编译程序如何区分模态构造函数和非摸态构造函数?书上说:C++编译程序能够区分模态和非摸态,如果编译程序看到类CView或者它的派生类参数,就生成对非摸态的调用;如果编译程序看到的是类CWind或它的派生类的参数,就会生成对模态的调用 ,可是我就不明白了,这个继承关系,如果说CView的派生类不也是Cwnd的派生类吗?CView本身不就是CWnd的派生类吗?  
   

解决方案 »

  1.   

    楼上说得没错,只是我这本书上称之为模态对话框和非摸态对话框,创建一个对话框类时,类的构造函数有两个版本,一个是模态的,参数为CWnd*,一个是非模态的,参数为CView*,就是不太明白编译程序如何来判断你要创建的是模态对话框还是非模态对话框呢?
      

  2.   

    模态的用DoModal()来显示,封装的有消息循环,
    非模态的自己CreateWindow()然后ShowWindow()