win32 C++上的按钮样式

Posted

技术标签:

【中文标题】win32 C++上的按钮样式【英文标题】:Styles of buttons on win32 C++ 【发布时间】:2009-02-22 02:19:26 【问题描述】:

我知道您可以在 C++ win32 exa 中的按钮上添加一些样式。像 BS_DEFPUSHBUTTON BS_RADIOBUTTON 但我不知道所有这些,也不知道如何制作用户绘制的按钮

【问题讨论】:

我确定您的意思是“Win32 exe”,您能否更改您的描述,以便其他人可以有效地搜索?谢谢! 【参考方案1】:

你可以在 MSDN 上找到reference of all button styles(和往常一样)。和an overview of the Button control 一般。

要创建所有者绘制的按钮,您需要指定BS_OWNERDRAW 标志并在按钮父窗口中处理WM_DRAWITEM 通知。

【讨论】:

【参考方案2】:

如果您只想调整按钮绘制算法,您应该查看DrawThemeBackground API - 它允许您使用标准 Windows 主题引擎使用的相同视觉效果来绘制按钮。

但是,当主题被禁用(当 OpenTheme 失败时)时,您确实需要小心处理这种情况 - 在这种情况下,不幸的是,您只能靠自己了。

【讨论】:

以上是关于win32 C++上的按钮样式的主要内容,如果未能解决你的问题,请参考以下文章

是否可以使用 WIN32 API 和 GDI+ (C++) 对工具提示进行样式化

MFC对话框按钮,怎么弄成WINDOWS主题的样式?

WPF中如何改变win7样式

按下回车按钮时如何使用 C++ Win32 API 调用按钮?

我网站上的 Twitter 关注按钮 - 无样式内容的 Flash

在 ExtJS 中,如何禁用悬停在禁用工具栏按钮上的样式更改?