【发布时间】:2009-02-22 02:19:26
【问题描述】:
我知道您可以在 C++ win32 exa 中的按钮上添加一些样式。像 BS_DEFPUSHBUTTON BS_RADIOBUTTON 但我不知道所有这些,也不知道如何制作用户绘制的按钮
【问题讨论】:
-
我确定您的意思是“Win32 exe”,您能否更改您的描述,以便其他人可以有效地搜索?谢谢!
我知道您可以在 C++ win32 exa 中的按钮上添加一些样式。像 BS_DEFPUSHBUTTON BS_RADIOBUTTON 但我不知道所有这些,也不知道如何制作用户绘制的按钮
【问题讨论】:
你可以在 MSDN 上找到reference of all button styles(和往常一样)。和an overview of the Button control 一般。
要创建所有者绘制的按钮,您需要指定BS_OWNERDRAW 标志并在按钮父窗口中处理WM_DRAWITEM 通知。
【讨论】:
如果您只想调整按钮绘制算法,您应该查看DrawThemeBackground API - 它允许您使用标准 Windows 主题引擎使用的相同视觉效果来绘制按钮。
但是,当主题被禁用(当 OpenTheme 失败时)时,您确实需要小心处理这种情况 - 在这种情况下,不幸的是,您只能靠自己了。
【讨论】: