因为。所以。。
因为CDialog 类没有这个函数。

解决方案 »

  1.   

    是的,DoModel()不调用PreCreateWindows(),你可以用非模式的Create()
      

  2.   

    PreCreateWindows()重要是设置窗口风格的,对话框没有这个必要,所以就不调用了,我是这样想的。
    但到底它为什么又存在呢?由于CDialog是继承自CWnd的,PreCreateWindows()是CWnd一个虚函数,所以就可以被CDialog重写,但我认为它对CDialog没有作用。
    以上是我个人的意见,请大家指正吧。
      

  3.   

    CWnd::PreCreateWindow
    virtual BOOL PreCreateWindow( CREATESTRUCT& cs );
    ResCalled by the framework before the creation of the Windows window attached to this CWnd object.Never call this function directly.CDialog的基类是CWnd,而PreCreateWindow是CWnd的Virtual函数,故CDialog可以不调用。
      

  4.   

    BOOL PreCreateWindow( CREATESTRUCT& cs )
    {
       cs.style &= ~WS_MINIMIZEBOX; 
    }
      

  5.   

    BOOL PreCreateWindow( CREATESTRUCT& cs )
    {
      cs.style &= ~WS_MINIMIZEBOX; 
    }
    这样就行。
      

  6.   

    To: : w_king() 
    这样好象不行吧,,
    中基于对话框的,,
    它没调用这个函数..
      

  7.   

    SetWindowPlacement()
    好像是这个函数,不过参数比较复杂,多读读msdn吧