问题标签 [aero]

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 投票
1 回答
859 浏览

winapi - win32 sdk:如何使子窗口的标题/边框透明

在我的 win32 应用程序中,我想在主窗口中创建一个子窗口。我在调用 CreateWindowEx 时将这些样式分配给子窗口:

我得到的子窗口有一个标题和一个可调整大小的边框。但是标题中没有关闭按钮,并且子窗口的标题/边框不透明(我在 Windows 7 中使用航空主题)。

这是屏幕快照:

替代文字 http://img2.pict.com/f7/c6/2c/3570867/0/e68d95e88eb7.png

如何在标题中添加关闭按钮?如何使标题/边框透明?

0 投票
1 回答
2542 浏览

c# - 在没有 WPF 的扩展玻璃框架中绘制文本框

我正在尝试在表单的扩展玻璃框架上绘制一个 TextBox。我不会描述这种技术,它是众所周知的。以下是未听说过的示例:http ://www.danielmoth.com/Blog/Vista-Glass-In-C.aspx

问题是,在这个玻璃框架上绘图很复杂。由于黑色被认为是 0-alpha 颜色,任何黑色都会消失。

显然有一些方法可以解决这个问题:绘制复杂的 GDI+ 形状不受这种 alpha-ness 的影响。例如,此代码可用于在玻璃上绘制标签(注意:GraphicsPath使用它而不是DrawString为了解决可怕的 ClearType 问题):

类似地,这种方法可用于在玻璃区域上创建容器。请注意使用多边形而不是矩形 - 使用矩形时,其黑色部分被视为 alpha。

现在我的问题是:如何绘制文本框?经过大量谷歌搜索,我想出了以下解决方案:

  • 子类化 TextBox 的OnPaint方法。这是可能的,尽管我无法让它正常工作。它应该涉及画一些我还不知道怎么做的神奇的东西。
  • 做我自己的定制TextBox,也许就一个TextBoxBase。如果有人有好的、有效的和有效的例子,并且认为这可能是一个很好的整体解决方案,请告诉我。
  • 使用BufferedPaintSetAlpha. (http://msdn.microsoft.com/en-us/library/ms649805.aspx)。这种方法的缺点可能是文本框的角落可能看起来很奇怪,但我可以忍受。如果有人知道如何从 Graphics 对象正确实现该方法,请告诉我。我个人没有,但这似乎是迄今为止最好的解决方案。老实说,我找到了一篇很棒的 C++ 文章,但我懒得转换它。http://weblogs.asp.net/kennykerr/archive/2007/01/23/controls-and-the-desktop-window-manager.aspx

注意:如果我成功使用 BufferedPaint 方法,我发誓我将制作一个简单的 DLL,其中包含可在玻璃上绘制的所有常见 Windows 窗体控件。

0 投票
1 回答
387 浏览

wpf - 如何复制应用于 Aero 窗口标题栏中的文本的“背景”?

航空玻璃标题栏示例

Aero 中的所有窗口在其文本上都有这种白色背景。我想为我正在使用的在标签区域中有一个 TextBlock 的 GlassWindow 创建一个等效的这种效果,但我并不是真正的设计师,所以我不知道如何处理这个问题。我怎样才能重现这种背景效果?

0 投票
1 回答
989 浏览

.net - 在 Windows Vista/7 中重定向应用程序的图形输出(使用 DWM)

我想创建一个桌面管理器,它获取所有正在运行的应用程序的信息,包括状态和屏幕截图,以便在我的虚拟空间(可能是 3D)中显示和操作它们。它可以被认为是 Windows 本身之上的另一层抽象。

因为像 Flip 3D 和 Live Thumbnails 这样的许多原生 Windows Vista/7 功能能够实时显示每个窗口的活动,例如视频一直在任务栏的缩略图中播放,我认为 DWM 允许应用程序将其输出重定向到其他地方或某些特殊进程能够收集其他应用程序的图形输出(可能仅限子进程)。Microsoft 是否为此发布了一组公共 API?如果不能,技术上可行吗?如果我将范围限制为仅使用 WPF 的 .NET 应用程序会更容易吗?

0 投票
1 回答
2441 浏览

c# - 像 Windows Media Player 一样的 Aero 玻璃按钮?

我正在制作一个程序,我想拥有一套 Aero Glass 控件,就像 Windows Media Player 一样,我发现了这个:http: //blogs.msdn.com/b/tims/archive/2006/04/18/578637 .aspx但它只是绘制黑色。我还发现了一个控件,它在玻璃上内置了媒体播放器控件,但是它不想正确渲染并且使我的程序的不同部分无法工作,这并不好。任何控件或扩展 Aero 玻璃的方法,以便我至少可以添加自己的按钮,将不胜感激。谢谢 :)

顺便说一句,仅限 C#。:)

0 投票
1 回答
495 浏览

windows - 不在 CWnd 上绘制粗框

我有一个应用程序窗口,我在其中添加了 WS_THICKFRAME 样式并删除了 WS_CAPTION 样式。当窗口最大化时,我想隐藏 WS_THICKFRAME,但保留 Aero-Snap 功能,因此我更改了 WS_NCCALCSIZE 的处理程序以返回相对于窗口边框大小的膨胀矩形。

也就是说,WS_NCCLIENTSIZE 处理程序代码的重要部分如下所示:

该代码有效地隐藏了 WS_THICKFRAME。

唯一的问题是,当窗口失去焦点或重新获得焦点(最大化时)时,WS_THICKFRAME 被绘制在边界内。当设置/取消设置窗口焦点时,是否有一条消息可以让我返回 Inflated rect 或至少重新调整窗口大小以再次隐藏 WS_THICKFRAME?

0 投票
2 回答
5118 浏览

c# - 将任务栏上下文菜单添加到 win7 应用程序

在哪里可以找到有关向 Windows 7 应用程序添加上下文菜单(编辑:跳转列表)的文档?您知道,当您右键单击任务栏上的应用程序图标时。我可以使用 .NET 做到这一点吗?还是我需要使用本机代码?

谢谢!

0 投票
1 回答
3765 浏览

vb.net - VB.NET - 功能区显示黑色区域

我需要有关我的 vb.net 程序的帮助。我使用DotNetBar在主窗体的顶部添加了一个功能区栏,问题是它显示了一个黑色矩形区域,而不是默认的蓝色。这仅在我使用 Windows 7 aero 且未最大化时发生。

替代文字

有人有什么建议吗?

0 投票
1 回答
251 浏览

.net - 如何在 WPF 中使用 DrawThemeTextEx

我正在开发一个在 Aero Glass 上显示文本的应用程序。为了使其可读,我使用了 OuterGlowBitmapEffect,但是,正如这里所描述的,这在 .NET 4 中不再可能,并且 DropShadowEffect 也不适用于 Glass。

在寻找解决方案时,我在 DWMApi 中遇到了原生 DrawThemeTextEx,但我发现的所有示例都是针对 WinForms 而不是 WPF。

那么如何在 WPF 中使用它呢?

谢谢

0 投票
1 回答
711 浏览

button - 如何在 Aero 主题标题栏上绘制自定义按钮而不扩展非客户区?

我试图弄清楚在 Vista 或 Win7 中使用 Aero 主题时如何在窗口的标题栏上绘制自定义按钮。我需要在不更改原始代码的情况下将其应用于许多不同的应用程序,因此这将在一个挂钩过程中。由于无法更改原始代码,因此无法使用 DwmExtendFrameIntoClientArea。

我很确定这是可以做到的,或者至少可以很好地伪造,因为我见过一个可以做到这一点的应用程序。在其他应用程序运行时,我已经非常仔细地查看了各种窗口,我不相信他们正在改变窗口样式或将框架扩展到客户区域。

作为测试,我尝试使用 WM_NCPAINT 消息在标题栏上绘制一些东西。当 Aero 主题处于活动状态时,我绘制的任何内容都不会出现。如果我得到整个屏幕而不是窗口的 DC,那么我可以“绘制”到标题栏上,但当然,它实际上是被绘制到屏幕上的。这种方法存在各种各样的问题,所以这是行不通的。如果有人有任何好主意,甚至是好的提示,我将非常感谢您的帮助!