65.9K
CodeProject 正在变化。 阅读更多。
Home

自定义的 MDI 皮肤标题

starIconstarIconstarIcon
emptyStarIcon
starIcon
emptyStarIcon

3.09/5 (19投票s)

2002年6月17日

2分钟阅读

viewsIcon

585282

downloadIcon

5127

为 MDI 创建您自定义的皮肤标题栏

Sample Image - CustomCaptionMDI.gif

引言

对于所有希望自定义应用程序标题栏的人来说,这里有一个解决方案。这是我在这个方向上的第一阶段努力,所以这里的代码质量不是很高。我觉得还有改进和修改的空间。如果您发现任何错误,请随时与我联系。

演示项目包含两个类来定制您的标题栏。第一个类名为CBeeChildFrame,它将允许您自定义子框架的标题栏,而CBeeMainFrame让您可以自定义主框架窗口。

实现这些类非常简单。您只需要指定标题栏的活动和非活动状态的皮肤图像以及标题栏的颜色。(我正在寻找一种更好的方式来拉伸图像,以便我可以摆脱这些颜色。)

所以下载并享受吧。祝一切顺利!

如何美化标题栏?

实现标题栏类非常容易。在包含标题栏的活动和非活动状态的图像以及关闭、最小化、最大化和还原按钮的图像(如果您为按钮的鼠标悬停、非活动和正常状态提供图像,您将获得最佳结果)之后,并且包含两个类的文件,即CBeeChildFrameCBeeMainFrame,只需将以下代码添加到子框架类的构造函数中以美化标题栏

CChildFrame::CChildFrame()
{
    SetTitleImages(IDB_ACTIVE,IDB_INACTIVE);
    SetTitleFontColor(RGB(255,171,197));
    AddCloseButton(IDB_CLOSE_UP,IDB_CLOSE_DN,
                       IDB_CLOSE_UP_GR,IDB_CLOSE_UP_GR);
    AddMaximizeButton(IDB_MAX_UP,IDB_MAX_DN_GR,
                           IDB_MAX_UP_GR,IDB_MAX_DN_GR);
    AddMinimiseButton(IDB_MIN_UP,IDB_MIN_DN,
                           IDB_MIN_UP_GR,IDB_MIN_DN_GR);
    AddRestoreButton(IDB_RESTORE_UP,IDB_RESTORE_DN,
                   IDB_RESTORE_UP_GR,IDB_RESTORE_DN_GR);
    SetActiveWindowGradient(RGB(1,76,133),
                                      RGB(146,164,176));
    SetInactiveWindowGradient(RGB(122,122,122),
                                      RGB(250,250,250));
}

并添加以下代码以美化主框架的标题栏

CMainFrame::CMainFrame()
{
    SetTitleImages(IDB_ACTIVE,IDB_INACTIVE);
    SetTitleFontColor(RGB(255,171,197));
    AddCloseButton(IDB_CLOSE_UP,IDB_CLOSE_DN,
                       IDB_CLOSE_UP_GR,IDB_CLOSE_UP_GR);
    AddMaximizeButton(IDB_MAX_UP,IDB_MAX_DN_GR,
                           IDB_MAX_UP_GR,IDB_MAX_DN_GR);
    AddMinimiseButton(IDB_MIN_UP,IDB_MIN_DN,
                           IDB_MIN_UP_GR,IDB_MIN_DN_GR);
    AddRestoreButton(IDB_RESTORE_UP,IDB_RESTORE_DN,
                   IDB_RESTORE_UP_GR,IDB_RESTORE_DN_GR);
    SetActiveWindowGradient(RGB(1,76,133),
                                      RGB(146,164,176));
    SetInactiveWindowGradient(RGB(122,122,122),
                                      RGB(250,250,250));
}

现在一切都完成了。您已经美化了 MDI 应用程序中的标题栏。
现在由于这是我在 Code Project 上的第一篇文章,而且现在已经很晚了,我将在几天内解释这篇文章,所以请发送您对演示项目的反馈。

修订历史

  • 2002年6月17日 - 初始修订
  • 2002年6月17日 - 重新格式化

许可证

本文没有明确的许可证附加到它,但可能包含文章文本或下载文件本身中的使用条款。如有疑问,请通过下面的讨论区联系作者。作者可能使用的许可证列表可以在这里找到。

© . All rights reserved.