新建了一个基于对话框的程序,想让它在初始显示就最大化,从网上查,说是在OnInitDialog()最后加上ShowWindow(SW_MAXIMIZE)就可以了,我试了一下,的确可以,不过有点纳闷,我没加这句话前,程序没有调用ShowWindow吗?如果调用了,岂不是冲突了,如果没有调用,那它是怎么显示出对话框的?

解决方案 »

  1.   

    你在调用十次SHOWWINDOW也无所谓
      

  2.   

    这是MFC内部机制控制的,当执行OnInitDialog()时,对话框还没有显示,OnInitDialog()就是显示对话框前的最后一站,你在OnInitDialog()中调用了ShowWindow(SW_MAXIMIZE),MFC内部就不再使用默认的显示对话框的操作了。MFC内部有一套默认的机制来控制整个程序的过程。如果想进一步了解这方面的知识,可以参阅《深入浅出MFC》《Visual C++6.0技术内幕》等书籍。
      

  3.   

    这是MFC内部机制控制的,当执行OnInitDialog()时,对话框还没有显示,OnInitDialog()就是显示对话框前的最后一站,你在OnInitDialog()中调用了ShowWindow(SW_MAXIMIZE),MFC内部就不再使用默认的显示对话框的操作了。MFC内部有一套默认的机制来控制整个程序的过程。如果想进一步了解这方面的知识,可以参阅《深入浅出MFC》《Visual C++6.0技术内幕》等书籍。
      

  4.   

    OnInitDialog()就是显示对话框前的最后一站,你在OnInitDialog()中调用了ShowWindow(SW_MAXIMIZE),MFC内部就不再使用默认的显示对话框的操作了
      

  5.   


    再不用ShowWindow的情况下,程序调用了父类的ShowWindow