可能不是我第一个提出,也可能不会是我最后一个提出。
新建frame后,我使用pframe(指向新建frame的指针),调用pframe->ShowWindow(SW_SHOWMAXIMIZE);才能让原本我加在里面的两个view出现,如果只是正常显示,我郁闷,只有一个短短的蓝色横条。如何让新建的frame健康一点的出现呢?太想知道了。另外,也有很多朋友提出如何建立一个模态的CFrameWnd窗口的问题。我本来以为,新建frame的时候,把它直接设置为最大化,把最大化和最小化按钮屏蔽,把新frame的父窗口指针指向CMainFrame就可以。但是,可但是,(飞雪连天断人肠,狂风呼啸欲摧魂啊),只要用户点击任务栏或者alt+tab一下,让我的新frame失去焦点,就又变成了一个短短的蓝色横条。我这个郁闷那。还有很多功能想在这个窗体中实现啊。各位,走过路过的,帮忙看一下啊。谢谢了。

解决方案 »

  1.   

    应该是创建Frame的时候,设置风格 WS_MAXIMIZE|WS_OVERLAPPEDWINDOW切换Frame , frame->MDIActivate()失去焦点怎么会导致frame最小化呢?!应该是楼主的代码有问题
      

  2.   

    就是,怎么新建的。看样子有点像MDI子框架,子框架应该从CMDIChildFrame继承吧。
      

  3.   

    没关系了。问题到目前为止已经不严重了。
    其实我用的是SDI,新建frame的过程,也是在响应一个按钮的事件中加入代码:CMyFrame *pFrame = new CMyFrame(); pFrame->Create(....,AfxGetMainWnd(),..); pFrame->ShowWindow(SW_SHOWNORMAL);
    后来我加了一条语句,绕开了问题: AfxGetMainWnd()->EnableWindow(FALSE)。当我的Frame关闭的时候,再把它打开AfxGetMainWnd()->EnableWindow(TRUE);
    我想,这个方法可能不是很好的解决方案,但目前,先这样了。基本上符合了建立所谓的“模态frame”的要求。
    脑子清醒很重要,就这样一种外行的办法,也是在半夜三更突然想到的。FT~