【问题标题】:Skin a dialog box给对话框蒙皮
【发布时间】:2011-03-31 10:49:55
【问题描述】:

我正在编写一个 C++ 应用程序,并且我有一个显示在常规对话框框架中的登录框。我看到有些人可以对整个对话框进行皮肤处理,让它看起来非常漂亮。我想知道是否有人可以给我一些关于如何做到这一点的指示。

【问题讨论】:

    标签: c++ skinning dialog


    【解决方案1】:

    我需要更多细节才能给你一个好的答案。

    答案很大程度上取决于您使用的操作系统以及您如何编写 GUI(例如在 Windows 上 - 普通 Win32、MFC、ATL、Qt、Windows 窗体、WPF 等)。

    如果您只是使用 Windows API,这里有一个链接可以帮助您入门。 http://www.codeproject.com/KB/dialog/skinstyle.aspx

    注意:如果您想自定义每个控件的外观,因为您最终会编写非常复杂的自定义控件,因此自定义皮肤对话框可能是一项非常大的任务。

    或者,您是否只是想确保您的对话框以 Windows XP 视觉样式而不是 XP 之前的样式显示?这将需要更改您的应用程序以使用新的通用控件和视觉样式。请注意,这会改变某些 Windows API 的行为并可能产生副作用(请参阅 ISOLATION_AWARE_ENABLED)。

    【讨论】:

    • 我的应用程序实际上是一个后台进程。它只有一个登录对话框。这是我唯一需要皮肤的东西。用户登录后,一切都进入后台进程。我目前正在使用 MFC。
    • 更准确地说,我只是想要一个覆盖整个登录框的图像。登录按钮也将是一个图像。对话框标题和关闭按钮也应该被删除。
    • 谷歌搜索“mfc 皮肤对话框”可以找到我在下面粘贴的一些建议。我认为您可以期望进行这些更改不仅仅是几行额外的代码,特别是如果您想更改非客户区的外观(标题和关闭按钮)。
    • 来自 CodeProject:您可以通过在对话框的 OnPaint () 处理程序中绘制图片来将图片作为对话框的背景。 (OnDraw () 不适用于对话框。)另一种可能性是 OnEraseBackground ()。 MFC 有一个 CBitmapButton 类,可用于按钮上的图片。
    • 本文底部还有有趣的信息和链接:www6.conestogac.on.ca/~set/courses/year2/gui/mfctips.html
    猜你喜欢
    • 2017-05-31
    • 2011-03-15
    • 2011-04-10
    • 1970-01-01
    • 2020-03-21
    • 1970-01-01
    • 2013-10-01
    • 2012-12-03
    • 2014-01-04
    相关资源
    最近更新 更多