问题标签 [uxtheme]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
3104 浏览

c# - 如何解析 .msstyles 文件?

我需要从 .msstyles 文件(Windows XP 视觉样式文件)中提取一些位图,但我不知道从哪里开始。我似乎找不到任何关于如何做到这一点的文档,而且文件格式似乎是二进制的,不容易解析。我已经能够使用以下方法自行提取位图:

但是,我还需要与位图相关的信息,例如边距大小、间距和每个位图的“图像”数量。有没有人对此有任何经验或我可以使用的任何文档链接?

0 投票
4 回答
8852 浏览

c++ - 如何获取窗口标题按钮的大小和位置(最小化、恢复、关闭)

是否有 API 调用来确定窗口标题按钮的大小和位置?我正在尝试将 vista 样式的标题按钮绘制到所有者绘制的窗口上。我正在处理 c/c++/mfc。

编辑:有没有人有一个代码示例来绘制关闭按钮?

0 投票
1 回答
3805 浏览

winforms - 您可以关闭单个窗口控件的视觉样式/主题吗?

我的 Windows 窗体应用程序使用以下标准代码行,以便为整个应用程序启用视觉样式(主题)...

...效果很好,所有控件都具有主题外观,而不是您会得到的平坦的战舰灰色。但我只需要关闭单个控件实例的视觉样式。我无法删除上面的行,因为那样我会失去所有控件的主题。是否可以从单个控件实例中删除主题?

仅供参考:碰巧我想从 DateTimePicker 实例中删除主题,所以如果除了 DateTimePicker 之外一般答案是否定的,那么这就足够了。如果解决方案涉及在最低级别使用控件,我很乐意使用平台调用。

0 投票
5 回答
16554 浏览

c# - 如何给 RichTextBox 一个扁平的外观?

我正在开发一个 WinForms SmartClient 应用程序,该应用程序使用了很多 RichTextBox 控件——出于各种原因,其中一些控件代替了常规的 TextBox。不幸的是,RichTextBox 绘制了丑陋的 Win95 3D 边框,而不是主题 XP 或 Vista 风格的边框。

有谁知道将主题边框应用于 RichTextBox 的方法?我不介意为此目的对它们进行子类化。

谢谢!

0 投票
2 回答
1277 浏览

windows - 为什么 OpenThemeData(pParent, L"TEXTSTYLE") 在 XP 上失败?

我正在使用主题库来绘制一些在 Windows Vista 上运行良好的文本 - 但是,在 Windows XP 上,返回的 HTHEME 为 NULL。这是我正在使用的代码:

hTheme 在 Vista 上有效,但在 Windows XP 上为 NULL。
我在 MSDN 上阅读了 OpenThemeData 和 Parts and States 的文档没有提到 XP 不支持 TEXTSTYLE(甚至 Google 也没有提出任何好的建议)。

0 投票
2 回答
1032 浏览

delphi - 启用 XP 视觉主题/视觉样式会降低性能

在尝试使旧的 C++Builder / Delphi 应用程序的外观现代化时,我启用了视觉主题(视觉样式),并且对添加了多少性能影响主题感到惊讶。例如,对于我们的主要设置页面(一个 11 个选项卡、200 个控件的怪物对话框,由于开发时间和再培训成本的原因,我们现在不想重做):

  • 未启用主题:构造表单及其控件约 0.1 秒(由 QueryPerformanceCounter 测量),从单击菜单项到显示表单约 0.9 秒(由秒表测量)。对最终用户来说并不是很明显。
  • 启用主题:~0.6 秒构建表单及其控件,~1.5 秒从单击菜单项到显示表单。对最终用户来说非常明显。

我在 Windows XP 桌面和 Windows 7 VM 上都得到了类似的结果。

我意识到我可以采取一些措施来改进这种特殊情况(例如延迟加载对话框的选项卡或完全重新设计它),但是主题通常会增加如此明显的性能影响吗?有什么简单的建议可以避免这种性能损失吗?

0 投票
1 回答
480 浏览

c# - 禁用主题窗口边框

在 Windows XP 的 CMD 中,没有应用 Luna 边框。替代文字 http://wedowebstuff.info/uploads/1272861285CMDNotThemed%5D.png

对于应用程序,是否可以在 Visual C# Winforms 中以类似的方式执行此操作?我只是想知道它是如何完成的,当然我不会强迫我的任何应用程序不使用漂亮的 XP/Aero 主题:P

谢谢。

编辑:几个月后为此添加注释。Luna 边框不适用于 CMD,因为它在技术上是 16 位(旧)应用程序,因此它不使用标准的 Windows 主题系统(也不使用窗口,正如它不能最大化的事实所证明的那样)。像这样的应用程序在 32 位 Windows 中很常见(在 x64 Windows 版本中删除了 16 位应用程序),例如sysedit。它在 Vista/7 中具有正确主题的窗口边框(但请注意,不是内部控件)的事实是由于 Aero/Desktop 窗口管理器 (DWM) 覆盖所有窗口边框并呈现它们。如果我们切换到基本/经典主题,这种不一致会继续存在。

x64 cmd.exe 没有这个问题。:)

0 投票
1 回答
323 浏览

com - Office COM 加载项,对话框没有 luna/aero 主题(它们看起来像 Windows 98 经典外观)

我有一个 Office 2007 插件,它添加了一个工具栏,其中包含一些按钮和处理程序的 OnClick 事件。当用户单击按钮时,会显示一些对话框。但是这些对话框具有过时的 Windows 98 外观和矩形按钮,即使在 Windows 7 上也是如此。

我知道您需要一个清单文件来启用主题,但是这个插件是使用 Visual Studio 2008 创建的,它会自动添加一个清单,如下所示:

我应该更改什么以使我的对话框使用当前主题而不是 Windows 98 外观?我读过关于隔离意识的文章,但这似乎也不起作用。

0 投票
1 回答
1569 浏览

delphi - 如何更改主题 DrawThemeTextEx 字体颜色?

我正在使用DrawThemeTextEx来绘制文本。我正在尝试使用结构的crTextCOLORREF 成员以特定颜色绘制它DTTOPS

不幸的是,文本颜色总是黑色,而不是我的代码指定的亮石灰绿色:

在此处输入图像描述

可以通过在设备上下文中选择新字体来更改使用的字体,即:

但既不SetTextColor,也不设置结构的crTextDTT_TEXTCOLOR选项DTTOPS,改变使用的文本颜色。

令人困惑的是DTTOPS 结构允许我指定颜色

与 DTT_TEXTCOLOR 标志一起表明我正在使用该成员:

我想要完成的是记录在案,但它不能正常工作。显然我做错了什么。

使用DrawThemeTextEx绘制文本时如何指定文本颜色

0 投票
1 回答
1054 浏览

delphi - 如何修复 UxTheme 中的延迟声明

在 Delphi XE UxTheme 单元中有以下声明

我的带有 SP3 的 Windows XP Professional 在 uxtheme.dll 中没有这样的功能(使用http://www.nirsoft.net/utils/dll_export_viewer.html中的 dllexp.exe 检查)

似乎我的应用程序确实延迟加载过程并且运行时失败并出现以下错误:

该问题在 JVCL 中也遇到过,但根据http://andy.jgknet.de/blog/2009/09/once-upon-a-delayed-jvcl-time/在那里解决

我需要修复 UxTheme,因为 DevExpress 组件也使用它们。

有没有办法修补/修复 UxTheme.pas DrawThemeTextEx 声明为非延迟?