MFC中标题栏的绘制

MFC中标题栏的绘制,mfc,Mfc,我想在对话框的标题栏上放置一些控件。一种可能的解决方案是,我只需从对话框中删除标题栏,然后绘制自己的标题栏 但如果我画自己的标题栏,标题栏的外观不会随着窗口的主题而改变。我还必须忍受接近、最小化和最大化BTN的痛苦 所以我想问一下,是否可以在标题栏上绘制控件,可以是自定义按钮或任何其他窗口,而无需绘制整个标题栏 提前谢谢 您好,您可以使用本文中的方法 -对话框标题中的自定义按钮毫无疑问,您可以这样做,但这样做几乎肯定是一个非常糟糕的主意。UI在可预测且一致的情况下工作良好。您将如何处理不同的操作

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

但如果我画自己的标题栏,标题栏的外观不会随着窗口的主题而改变。我还必须忍受接近、最小化和最大化BTN的痛苦

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


提前谢谢

您好,您可以使用本文中的方法
-对话框标题中的自定义按钮

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

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