【问题标题】:Drawing on caption bar in MFC在 MFC 中的标题栏上绘图
【发布时间】:2011-05-13 12:01:06
【问题描述】:

我想在对话框的标题栏上放置一些控件。一种可能的解决方案是,我只需从对话框中删除标题栏并绘制自己的标题栏。

但是如果我自己绘制标题栏,标题栏的外观不会根据窗口的主题而改变。而且我还不得不忍受接近、最小化和最大化 btns 的痛苦。

所以我想问一下是否可以在标题栏上绘制控件,可以是自定义按钮或任何其他窗口,而无需绘制整个标题栏。

提前谢谢..

【问题讨论】:

    标签: mfc


    【解决方案1】:

    毫无疑问,您可以这样做,但这样做几乎可以肯定是一个非常糟糕的主意。 UI 在可预测且一致时运行良好。您将如何处理不同的操作系统版本、主题/非主题、操作系统的未来版本,它们在绘制非客户端区域的方式上可能会大不相同。做自己的事情的程序通常会因此而烦人,例如 iTunes、Safari、Windows 版 QuickTime,它们试图让您相信您在 Mac 上运行,或者带有奇异菜单的 Firefox 4。我的建议是让系统按照自然的意图绘制非客户区,并将你的 UI 放在客户区。

    【讨论】:

    • 换句话说,您可以在对话框中添加一个工具栏,其中包含您想要的所有控件,而不是弄乱标题栏。
    • 我理解这个答案的论点,但请看一下 Office 2016 和 Chrome,它们符合操作系统的外观和感觉,但使用工具栏的方式不同或颜色不同,它没有看起来对操作系统很陌生
    • 直到下一个版本的操作系统使用完全不同的主题。选项卡式浏览器之类的东西别无选择,只能自定义,因为系统不提供内置 UI 来完成这项工作。
    【解决方案2】:

    您好,您可以使用本文中的方式http://www.codeproject.com/KB/buttons/CustomBitmapButtonDemo.aspx - 对话框标题中的自定义按钮

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-09-05
      • 1970-01-01
      • 2010-12-16
      • 2016-03-22
      • 1970-01-01
      • 2016-09-13
      • 1970-01-01
      相关资源
      最近更新 更多