WTL 的简单选项卡式 MDI






4.93/5 (12投票s)
2001年12月23日

79976

1832
这是 WTL 的一个简单选项卡式 MDI。
引言
这个类在基于 WTL 的 MDI 应用程序中添加了一个简单的选项卡控件。它部分基于 Dundas Software 提供的免费 MFC 版本,该版本可在以下网址找到:
用法
首先,包含头文件并在主框架类中创建一个 CMDITabImpl
成员。
#include "atlmditab.h"
...
class CMainFrame : public ....
{
CMDITabImpl<CMainFrame> m_TabbedMDI;
然后在主框架的 OnCreate(..)
函数中附加到控件
LRESULT OnCreate(UINT /*uMsg*/, WPARAM /*wParam*/,
LPARAM /*lParam*/, BOOL& /*bHandled*/)
{
....
CreateMDIClient();
m_CmdBar.SetMDIClient(m_hWndMDIClient);
m_TabbedMDI.Attach(this);
...
}
然后你必须在主框架中添加一个 UpdateLayout()
函数,以正确放置选项卡控件。如果有人找到一个 WTL 解决方案,而不需要这段额外的代码,请告诉我。
void UpdateLayout(BOOL bResizeBars = TRUE)
{
RECT rect;
GetClientRect(&rect);
// position bars and offset their dimensions
UpdateBarsPosition(rect, bResizeBars);
m_TabbedMDI.UpdateTabLayout(m_hWndClient, rect);
}
限制
这个类是为学习 WTL 而编写的,所以实现中肯定有很多错误。并且一些功能尚未实现,例如图标支持和上下文菜单。等我有更多时间时,我会继续改进它们。干杯!
历史
- 2001年12月23日:初始版本
许可证
本文未附加明确的许可证,但可能在文章文本或下载文件本身中包含使用条款。如有疑问,请通过下面的讨论区联系作者。
作者可能使用的许可证列表可以在此处找到。