单文档程序静态拆分成了4个子窗口(A,B,C,D),程序运行时又创建了一个popup风格非模态对话框Dlg,并用SetParent函数强制指定这个对话框的父窗口为拆分子窗口A。现在的情况是这样的:我选中这个对话框Dlg使其处于激活状态,再点击主界面(也就是Mainframe)的最小化按键将主界面最小化,这时候程序窗口被整个最小化到了操作系统的任务栏上,一般来说再单击这个最小化的图标会使窗口还原,但此时我单击双击怎么都还原不了窗口。除非通过鼠标右键菜单选择“还原(R)”选项才可以还原窗口。怎么解决这个问题?

解决方案 »

  1.   

    不会的,要是死循环为什么我用右键菜单选择“还原”就可以使窗口还原了?我现在是这么做的,每次最小化主界面的时候,我先把这个对话框Dlg最小化到它所属的子窗口A的下沿,这时候就不会出现这种单击不能还原的情况。但是导致这个情况出现的原因我现在都还不明白。
      

  2.   

    修改你对话框的属性,Style为Child风格即可
      

  3.   

    我也知道child风格对话框可以啊,不然还费那么大劲强制SetParent。问题是我发现child风格有很多麻烦事,其一,不容易加上最大最小化按键,其二,当出现多个child对话框在一个父窗体中的时候,我经常发现对话框重绘出问题,即对话框交错的时候会相互在界面上出现对方的重影。
    我现在已经解决了这个问题,就是每次最小化主窗口的时候都先把对话框最小化掉,然后单击还原主窗口就没问题了,还原了主窗口后又再把对话框还原,虽然笨了点但总是解决了问题,只不过我一直不知道导致这个现象出现的原因。
    算了,结贴吧。