首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用SetWindowCompositionAttribute去除模糊的轮廓

SetWindowCompositionAttribute是一个Windows API函数,用于设置窗口的组合属性。通过使用SetWindowCompositionAttribute函数,可以去除窗口的模糊轮廓。

具体来说,SetWindowCompositionAttribute函数可以用于设置窗口的背景模糊效果。在Windows 10中,窗口可以使用Aero Glass效果,即模糊的背景轮廓。然而,有时候我们可能希望去除这种模糊效果,使窗口的轮廓更加清晰。

SetWindowCompositionAttribute函数的参数包括窗口句柄、组合属性数据结构和数据结构大小。组合属性数据结构中的成员可以用于指定窗口的背景模糊效果。

使用SetWindowCompositionAttribute函数去除模糊的轮廓的步骤如下:

  1. 获取窗口的句柄。
  2. 创建并初始化组合属性数据结构,设置其成员以指定不需要背景模糊效果。
  3. 调用SetWindowCompositionAttribute函数,传入窗口句柄和组合属性数据结构。

以下是一个示例代码片段,展示了如何使用SetWindowCompositionAttribute函数去除模糊的轮廓:

代码语言:cpp
复制
#include <Windows.h>
#include <Uxtheme.h>

// 定义组合属性数据结构
typedef struct _ACCENTPOLICY {
    int nAccentState;
    int nFlags;
    int nColor;
    int nAnimationId;
} ACCENTPOLICY;

typedef struct _WINCOMPATTRDATA {
    int nAttribute;
    PVOID pData;
    ULONG ulDataSize;
} WINCOMPATTRDATA;

// 定义组合属性常量
const int WCA_ACCENT_POLICY = 19;
const int ACCENT_DISABLED = 0;
const int ACCENT_ENABLE_BLURBEHIND = 3;

// 去除窗口模糊轮廓
void RemoveWindowBlur(HWND hWnd) {
    // 获取函数指针
    HMODULE hModule = LoadLibrary(L"user32.dll");
    if (hModule == NULL) {
        return;
    }
    typedef BOOL(WINAPI* pSetWindowCompositionAttribute)(HWND, WINCOMPATTRDATA*);
    pSetWindowCompositionAttribute SetWindowCompositionAttribute = (pSetWindowCompositionAttribute)GetProcAddress(hModule, "SetWindowCompositionAttribute");
    if (SetWindowCompositionAttribute == NULL) {
        FreeLibrary(hModule);
        return;
    }

    // 初始化组合属性数据结构
    ACCENTPOLICY policy = { ACCENT_ENABLE_BLURBEHIND, 0, 0, 0 };
    WINCOMPATTRDATA data = { WCA_ACCENT_POLICY, &policy, sizeof(ACCENTPOLICY) };

    // 调用SetWindowCompositionAttribute函数
    SetWindowCompositionAttribute(hWnd, &data);

    // 释放资源
    FreeLibrary(hModule);
}

int main() {
    // 获取窗口句柄
    HWND hWnd = GetForegroundWindow();

    // 去除窗口模糊轮廓
    RemoveWindowBlur(hWnd);

    return 0;
}

在这个示例代码中,我们首先定义了组合属性数据结构ACCENTPOLICY和WINCOMPATTRDATA,以及相关的常量。然后,我们通过LoadLibrary函数加载user32.dll库,并使用GetProcAddress函数获取SetWindowCompositionAttribute函数的地址。接下来,我们初始化组合属性数据结构,将其传递给SetWindowCompositionAttribute函数,以去除窗口的模糊轮廓。

需要注意的是,这个示例代码是使用C++编写的,仅供参考。在实际开发中,可以根据具体的编程语言和平台进行相应的调整。

推荐的腾讯云相关产品和产品介绍链接地址:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Windows 10 应用创建模糊背景窗口三种方法

三种创建模糊背景窗口方法 Windows 10 上创建带模糊背景窗口有三种不同方法,不过每一种都是既有好处又有坏处: 调用 Win32 API —— SetWindowCompositionAttribute...使用 Fluent Design System 中亚克力效果 —— AcrylicBrush。这绝对是 Windows 10 上获得背景模糊效果中视觉效果最好,同时又最省性能方法了。...---- SetWindowCompositionAttribute API SetWindowCompositionAttribute 并没有那么好调用,所以我为此写了一个辅助类类封装对背景模糊效果调用...使用这个辅助类,你只需要使用一行代码就能开启背景模糊效果。...当然,我还写了一篇博客专门讲使用 SetWindowCompositionAttribute API 实现背景模糊效果:在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样

2.9K30

使用 SetWindowCompositionAttribute 来控制程序窗口边框和背景(可以做 Acrylic 亚克力效果、模糊效果、主题色效果等)

Windows 系统中有一个没什么文档 API,SetWindowCompositionAttribute,可以允许应用开发者将自己窗口中内容渲染与窗口进行组合。...---- 试验用源代码 本文将创建一个简单 WPF 程序来验证 SetWindowCompositionAttribute 能达到各种效果。你也可以不使用 WPF,得到类似的效果。...SetWindowCompositionAttribute 类型。...ACCENT_ENABLE_BLURBEHIND 可以在 Windows 10 上做出模糊效果,就跟 Windows 10 早期版本模糊效果是一样。...---- 在 Windows 10 上,没有使用 WindowChrome: 你可能需要留意一下那个“诡异”模糊范围,你会发现窗口阴影外侧也是有模糊!!!你能忍吗?

1.4K60
  • 在 WPF 程序中应用 Windows 10 真•亚克力效果

    (而不是一些流行项目里面自己绘制亚克力效果。) ---- API 需要使用 API 是微软文档中并未公开 SetWindowCompositionAttribute。...我在另一篇博客中有介绍此 API 各种用法效果,详见: 使用 SetWindowCompositionAttribute 来控制程序窗口边框和背景(可以做 Acrylic 亚克力效果、模糊效果、主题色效果等...) - walterlv 当然,使用此 API 也可以做 Windows 10 早期模糊效果,比如: 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) - walterlv...如何使用 为了方便地让你窗口获得亚克力效果,我做了两层不同 API: AcrylicBrush 当然,受到 Win32 启用亚克力效果限制,只能在窗口上设置此属性 WindowAccentCompositor...欢迎转载、使用、重新发布,但务必保留文章署名 吕毅 (包含链接: https://blog.walterlv.com ),不得用于商业目的,基于本文修改后作品务必以相同许可发布。

    49010

    在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样)

    本文提供了一个完整用于在 Windows 10 上实现模糊特效 C# 类,没有放到 GitHub 也没有其他类型开源。如果需要直接拿走就好。 ---- ? ? 为什么不推荐使用?...于是微软只好砍掉了背景高斯模糊功能……充满遗憾……被世人唾骂…… 忍受不了世人咒骂,微软只好再把高斯模糊效果带回 Windows 10。...然而,本文探究方法并不是 Fluent Design System 中任何部分。依然是微软不期望大家使用方法,所以,本文并不推荐大家作为真实项目使用,而是作为一种探究学习途径。...我封装 API 为了方便大家使用,我封装了一个小 API。于是大家可以非常方便地使用。...- Stack Overflow 调用未公开API SetWindowCompositionAttribute 在Win10下开启Aero - CSDN博客 Windows 10 开始菜单高斯模糊效果是如何实现

    5.3K30

    使用轮廓分数提升时间序列聚类表现

    我们将使用轮廓分数和一些距离指标来执行时间序列聚类实验,并且进行可视化 让我们看看下面的时间序列: 如果沿着y轴移动序列添加随机噪声,并随机化这些序列,那么它们几乎无法分辨,如下图所示-现在很难将时间序列列分组为簇...在这种情况下,我们可以使用轮廓分数(Silhouette score),它为执行聚类分配一个分数。我们目标是使轮廓分数最大化。...然后,计算每个数据点轮廓系数 s(i),它定义为:s(i) = \frac{b(i) - a(i)}{\max\{a(i), b(i)\}} 最后,计算整个数据集轮廓分数,它是所有数据点轮廓系数平均值...并不能为任何数量簇提供良好轮廓分数。...欧几里得距离与相关廓形评分比较 轮廓分数表明基于相关性距离矩阵在簇数为4时效果最好,而在欧氏距离情况下效果就不那么明显了结论 总结 在本文中,我们研究了如何使用欧几里得距离和相关度量执行时间序列聚类

    41110

    使用uniq命令去除文件中重复行

    uniq命令全称是“unique”,中文释义是“独特,唯一”。该命令作用是用来去除文本文件中连续重复行,中间不能夹杂其他文本行。去除了重复,保留都是唯一,也就是独特,唯一了。...我们应当注意是,它和sort区别,sort只要有重复行,它就去除,而uniq重复行必须要连续,也可以用它忽略文件中重复行。...语法格式:uniq [参数] [文件] 常用参数: -c 打印每行在文本中重复出现次数 -d 只显示有重复纪录,每个重复纪录只出现一次 -u 只显示没有重复纪录 参考实例 删除连续文件中连续重复行...Linux 85 Linux 85 [root@linuxcool ~]# uniq testfile test 30 Hello 95 Linux 85 打印每行在文件中出现重复次数...,且每个纪录只出现一次: [root@linuxcool ~]# uniq -d testfile test 30 Hello 95 Linux 85 只显示没有重复纪录: [root

    2.1K00

    如何使用模糊算法提高监控软件性能

    如何才能提高监控软件性能呢?其实,咱们可以通过模糊算法从各个角度着手,让监控系统变得更聪明更高效。模糊逻辑就是那种对付那些有点儿模糊不太确定信息法宝,它在解决一些莫名其妙情况时可是大显身手。...使用模糊算法来提升监控软件性能涉及到多个关键步骤和方法,下面将详细介绍其中几点:问题建模和定义模糊变量:首先,需要将与性能相关指标和监控数据转化为适合模糊逻辑处理形式。...模糊推理引擎:在模糊推理阶段,需要选择适当模糊推理引擎,如Mamdani或Sugeno,以执行制定模糊规则。这将依据输入模糊变量和模糊规则,生成相应模糊输出。...去模糊化:去模糊化是将模糊输出转化为清晰数值,这一步骤非常关键。常用模糊化方法包括平均值法、加权平均法等,这些方法有助于从模糊输出中获得实际性能度量值。...像是要不要用模糊化,要不要脱模糊化,还有那一大串模糊规则是怎么定义,甚至是性能提升计策要不要来个大调整,这些都是算法剧本中重要角色。

    14120

    pandas中使用excel模糊匹配通配符,真香

    前言 在 pandas 中,实现如下模糊匹配统计,要怎么做? 简单: 因为在 pandas 中可以把筛选和统计两种逻辑分开编写,所以代码清晰好用。...问题在于pandas 中要实现模糊匹配,只能使用正则表达式或某种具体函数。...在 excel 中有一类可以模糊匹配统计函数,比如 sumifs 、 countifs 等,它们可以使用通配符实现模糊匹配统计。之前 excel 公式: 问号 ?...表示1个任意字符,星号 * 表示任意个数(0、1、或n)字符 对比来看,这可以直接在字符串中表达出 pandas 中 startswith , endswith , contains 这种直接在字符串中表达模糊匹配规则...应用到 pandas series.str.match 函数即可: 不过,每次都这样子调用很啰嗦。可以封装到一个函数里面: 现在可以使用

    1.7K20

    使用openCV去除文字中乱入线条实例

    没错,这就是原图,他希望可以通过一些简单算法将图中这条穿过单词间直线去掉,使得到结果能够通过他文字识别算法并得出正确结果——The Techniques of Machine Vision。...函数功能是在输入图像中找出一条直线,输入图像是灰度图raw,返回值为dst,返回值是以图片形式,将找到直线画上图中。...对于找到多条直线,认为最长一条是我们要找那条。.../ 180, 80, 200, 30); 参数中200是指要找直线长度要在200个像素以上; 参数中30指是两条在同一直线上线段,如果相隔不到30,则把它们连起来 */ void findLines...以上这篇使用openCV去除文字中乱入线条实例就是小编分享给大家全部内容了,希望能给大家一个参考。

    1.7K50

    转:如何使用模糊算法提高监控软件性能

    如何才能提高监控软件性能呢?其实,咱们可以通过模糊算法从各个角度着手,让监控系统变得更聪明更高效。模糊逻辑就是那种对付那些有点儿模糊不太确定信息法宝,它在解决一些莫名其妙情况时可是大显身手。...使用模糊算法来提升监控软件性能涉及到多个关键步骤和方法,下面将详细介绍其中几点: 问题建模和定义模糊变量:首先,需要将与性能相关指标和监控数据转化为适合模糊逻辑处理形式。...模糊推理引擎:在模糊推理阶段,需要选择适当模糊推理引擎,如Mamdani或Sugeno,以执行制定模糊规则。这将依据输入模糊变量和模糊规则,生成相应模糊输出。...去模糊化:去模糊化是将模糊输出转化为清晰数值,这一步骤非常关键。常用模糊化方法包括平均值法、加权平均法等,这些方法有助于从模糊输出中获得实际性能度量值。...像是要不要用模糊化,要不要脱模糊化,还有那一大串模糊规则是怎么定义,甚至是性能提升计策要不要来个大调整,这些都是算法剧本中重要角色。

    15120

    广告设计中“虚实”对比——使用“高斯模糊

    前言:学生们在学习ps软件过程中非常认真与努力,所以对于软件使用可以说已经很熟练了,可是为什么当我们给学生安排一些原创设计需求时候,学生却有种无从下手感觉呢,究其原因就是学生在创新制作这方面的技巧和方法学得不够...,所以下面我给大家分享一个案例,目的是为了能让大家在设计制作方法方面能有一定了解和提升 1、首先准备广告素材 ?...2、将素材置入psd文件,握手机素材放在画面中间 ? 3、复制场景照片,贴在手机屏幕内,再复制一层设置“滤色”,背景照片做“高斯模糊”,如下图 ?...4、最后加入文案,也可以尝试不同版式方案,如下图 方案 1 ? ? 方案 2 ? ? 上述操作步骤发布,旨在帮助大家对设计方法及技巧有所了解。...希望大家看过我案例分享后能有所收获。如果大家喜欢哪类效果,还想看哪方面的哪类型设计制作案例可以留言给我,有时间我一定会分享更多设计制作相关内容给大家。谢谢!

    99480

    广告设计中“虚实”对比——使用“径向模糊

    前言:学生们在学习ps软件过程中非常认真与努力,所以对于软件使用可以说已经很熟练了,可是为什么当我们给学生安排一些原创设计需求时候,学生却有种无从下手感觉呢,究其原因就是学生在创新制作这方面的技巧和方法学得不够...,所以下面我给大家分享一个案例,目的是为了能让大家在设计制作方法方面能有一定了解和提升。...具体操作步骤: 1、为素材添加滤镜 -> 模糊 -> 径向模糊 ? 2、注意:将径向模糊菜单中中心移动至照片中汽车位置,在“智能滤镜”蒙板中用画笔涂出汽车 ?...上述操作步骤发布,旨在帮助大家对上述设计方法及技巧有所了解。因为课余时间有限,文字内容及语言组织没花太多时间,说是教程有些牵强,算一个案例分享吧。希望大家看过我案例分享后能有所收获。...如果大家喜欢哪类效果,还想看哪方面的哪类型设计制作案例可以留言给我,有时间我一定会分享更多设计制作相关内容给大家。谢谢!

    1.1K70
    领券