【发布时间】:2012-03-29 05:08:05
【问题描述】:
Visual Studio 2010 在 MFC 项目的 MDI 和 SDI 应用程序中包含可停靠窗口。耶!但是,我在调整 CFormView 大小以适应 CFrame 中的可用区域时遇到问题。
我有一个 SDI 应用程序,它动态创建用户选择的视图类型并将其设置到 CFrame 对象中。
我意识到我可以使用 MDI 代替,但我想远离它,因为拥有多个文档的复杂性更高。
创建新视图并显示效果很好,但如果我:
CView* pOldActiveView = GetActiveView();
CView* pNewActiveView = (CView*)new CMyView;
CRect r;
pOldActiveView->GetWindowRect(&r);
pNewActiveView->Create(NULL, NULL, 0, w, this, nForm, &context);
pNewActiveView->OnInitialUpdate();
:然后每次我打开一个新视图时,窗口都会向上移动 8 个像素。我尝试调整 CRect 并解决了这个问题。
但是,当我隐藏/停靠输出和类窗口,甚至是基于 SDI 功能区的应用程序中的状态栏时,CFormView 不会自动调整大小,而且我找不到找到应该调整大小的 CRect 的方法它到。 如何从 CFormView 所在的 CFrame 中获取 CRect?
【问题讨论】:
标签: visual-c++ mfc