客户区CMDIFrameWndEx

时间:2016-04-04 10:52:07

标签: c++ mfc

下午好! 我将我的应用程序从CMDIFrameWnd更新为CMDIFrameWndEx,并面对MainFrame的客户区问题。在我有m_hWndMDIClient之前,我的类使用它的Subclass。现在我有m_wndClientArea,它让我很头疼!现在我不能进行Subclass。这就是我尝试这样做的原因:

mdiCliWnd_.Attach(m_wndClientArea.Detach());
mdiCliWnd_.Invalidate();
mdiCliWnd_.UpdateWindow();
m_wndClientArea.Attach(mdiCliWnd_.Detach());

但我甚至无法检查它是如何工作的,因为现在我遇到了一个问题,我应该将我的客户区的CWnd提供给另一个函数,但是m_wndClientArea是受保护的。 所以我的问题是:我可以用另一种方式继承我自己的类吗?如果我不能,我应该如何使用m_wndClientArea将其提供给另一个函数?

1 个答案:

答案 0 :(得分:0)

该子类化的原因是什么?

如果只是绘制背景,请使用新的虚函数: OnEraseMDIClientArea

否则使用标准子类没有问题。

由于mdi客户端窗口的HWND句柄已附加到MFC CWnd类对象,因此无法再次使用MFC子类。