想做个界面,大致上是,界面出现后会有多个按钮,点击所需按钮后,界面会刷新成所需的样子,开始用对话框做,可是在总是会出错,可以做成只是一个对话框,点击后按钮后就可以重画对话框里面的内容吗,如果可以的话怎么做呢!

解决方案 »

  1.   

    最好一个的功能复杂的按钮,就建一个新的对话框实现新的界面。如果都放在一个界面,那只能用 MoveWindow 移动控件,用 ShowWindow 显示或隐藏控件来实现了。
      

  2.   

    开始做的时候也是采取的这种方法,但是做到点击按钮返回之前打开过的对话框,就老是报错,可以忽略之后执行,但最后还是不能运行了,我是用的enddialog将先打开的对话框关闭,之后new一个先前对话框的对象,在来显示先前的对话框,可是就是会有错。。
      

  3.   

    你这个时候不能new了,这样就出现野指针了,除非你把之前的对象delete掉,或者申明一个全局的对象来用,再最后关闭主对话的时候delete就行
      

  4.   

    那如果是C++中没有通过new创建的对象,还需要删除吗,
      

  5.   

    LZ对面向对象编程不是很清楚,不用new创建的不是对象,那是引用,用了new才是一个对象实例,不用new的是系统管理内存,不需要自己释放,而用了new的是需要自己delete的。引用是编译器就留出了空间,在程序装入的数据段里,用new创建的空间是运行期在堆空间分配,用完后要自己记得归还(delete)
      

  6.   

    可以不用new dialog
    new 之后必须delete,否则就会造成内存泄露可以设置对话框showwindow(sw_hide)或者(sw_show)
      

  7.   

    这种情况,建议用分割视图的方法,按钮放到formview上面,显示用另外一个view(根据需要选具体的view)。