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

在Vista下查找MDI窗口的玻璃

在Vista下查找MDI窗口的玻璃,可以使用Windows API函数来实现。以下是一个简单的示例代码:

代码语言:c++
复制
#include<windows.h>
#include<iostream>

using namespace std;

BOOL CALLBACK EnumWindowsProc(HWND hwnd, LPARAM lParam)
{
    DWORD dwPID;
    GetWindowThreadProcessId(hwnd, &dwPID);
    if (dwPID == GetCurrentProcessId())
    {
        HWND hwndParent = GetAncestor(hwnd, GA_PARENT);
        if (hwndParent)
        {
            HWND hwndMDI = GetAncestor(hwndParent, GA_PARENT);
            if (hwndMDI)
            {
                HWND hwndGlass = FindWindowEx(hwndMDI, NULL, L"SHELLDLL_DefView", NULL);
                if (hwndGlass)
                {
                    cout << "找到玻璃窗口:" << hwndGlass<< endl;
                    return FALSE;
                }
            }
        }
    }
    return TRUE;
}

int main()
{
    EnumWindows(EnumWindowsProc, 0);
    return 0;
}

该代码使用EnumWindows函数枚举所有窗口,然后通过GetWindowThreadProcessId函数获取窗口所属进程的进程ID,如果与当前进程的进程ID相同,则获取窗口的父窗口,然后再获取父窗口的父窗口,如果该窗口是MDI窗口,则使用FindWindowEx函数查找SHELLDLL_DefView类的窗口,该窗口就是玻璃窗口。

需要注意的是,该代码只是一个示例,实际使用时可能需要进行修改和优化。

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

相关·内容

【MFC拓展库】上海道宁与BCGSOFT合作为您带来专业的Micrisoft Windows开发业务组件

02、Docking & MDI for UWP一个完整的对接工具窗口和多文档界面解决方案用户可以随意拖动和停靠窗口,并保留他们的布局自定义包含流行IDE中的停靠窗口和MDI功能,以及您在其他任何地方都找不到的扩展功能旨在完全支持数据绑定和在...默认情况下,状态栏和所有突出显示/聚焦的元素都是蓝色的,但您可以根据自己的喜好进行更改(仅限浅色和深色样式)。04、视觉主题该库为应用程序组件提供Microsoft Office 2013外观。...“横向”)或垂直(“纵向”)布局平铺标题和多行文本平铺图像数字和标志性徽章支持“活”瓷砖自定义颜色和画笔自定义瓷砖独立于操作系统:由于我们的实现只是模拟 Windows 8 风格的 Tiles,您可以在所有支持的操作系统下使用我们的...此外,您可以将任何对话框部分声明为“玻璃”(仅限Vista),该对话框区域将出现“Aero”效果。13、视觉设计仪表的可视化设计器允许在几分钟内使用新的所见即所得设计工具创建高质量的数字仪表板!.../2013/2016风格的功能区、自动隐藏控制栏、MDI 选项卡、灵活的可视化管理器等。

5.6K20
  • 在不确定列号的情况下如何使用Vlookup查找

    最近小伙伴在收集放假前的排班数据 但是收上来的数据乱七八糟的 长下面这样 但是老板们只想看排班率 所以我们最终做的表应该是这样 需要计算出排班率 排班率=排班人数/总人数 合计之外的每一个单元格...都需要引用 除了最基础的等于=引用 我们还有一种更加万能的Vlookup+Match的方法 这样无论日期怎么变化 无论日期顺序是否能对上 我们都不用更改公式 例如A部门,2月1日的排班率应该这么写 =...B17 单元格为排班率日期 A2:K2 单元格为我们排班人数的日期 M2:N8单元格是总人数 其中 分子排班人数的公式是 VLOOKUP($A18,$A$1:$K$8,MATCH(B$17...,$A$2:$K$2,0),0) 排班人数里面的日期匹配 我们用Match函数动态确定列号 MATCH(B$17,$A$2:$K$2,0) 分母总人数比较简单 就是常规的Vlookup VLOOKUP...部门合计我们需要确定部门的行号即可 为防止部门变动 最好也用公式确定行号 这一块 可以有两种写法 一种是用Sum,Offset,Index,Match函数组合 =SUM(OFFSET(INDEX

    2.5K10

    说说Win7的Aero效果

    最近看到别人写的一个例程,就是把控制台弄成了全透明,我把源码下载下来做了研 究。 其实从Vista版本之后,WindowsAPI里面增加了几个函数,用于Aero效果的实现。...DwmIsCompositionEnabled用于检测系统的桌面组合功能是否打开。...DwmExtendFrameIntoClientArea用于开启控制窗体的玻璃效果,他需要一个名为 MARGINS的结构作为参数,表达的是窗口四周的边框。...我们实际上就是要非客户区的 边框往内扩展,等到MARGINS足够大之后,就变成全玻璃特效的了。 下面是两个实例: 1.c++下使控制台变透明 ?...旗舰版等有透明特效的是这个样子 ? 2.c#下使窗体变透明 这个事先要声明一些东西作为准备 ? 然后在构造函数下调用即可 ? 效果 ?

    78430

    电脑软件:SmartSystemMenu(窗口置顶工具)介绍

    四、功能介绍使用方法:SmartSystemMenu的使用非常简单,运行后,默认就会显示在系统托盘中,不会显示任何界面,当你在软件窗口边框上右击,在弹出的右键菜单中就可以看到SmartSystemMenu...显示一个对话框,其中包含当前窗口和进程的信息:窗口句柄、窗口标题、窗口风格、窗口类、进程名称、进程ID、进程路径。卷起. 将当前窗口向上卷起。毛玻璃效果. 将 “毛玻璃效果” 模糊添加到当前窗口。...(仅 Windows Vista 及更高版本支持。主要用于控制台窗口。)窗口置顶. 当前窗口位于所有其他窗口之上。移至最底层. 将当前窗口发送到底部。保存窗口截图. 将当前窗口的屏幕截图保存到文件中。...显示一个对话框,其中包含当前窗口和进程的信息:窗口句柄、窗口标题、窗口风格、窗口类、进程名称、进程ID、进程路径。卷起. 将当前窗口向上卷起。毛玻璃效果. 将 “毛玻璃效果” 模糊添加到当前窗口。...(仅 Windows Vista 及更高版本支持。主要用于控制台窗口。)窗口置顶. 当前窗口位于所有其他窗口之上。移至最底层. 将当前窗口发送到底部。保存窗口截图. 将当前窗口的屏幕截图保存到文件中。

    62940

    C#学习笔记—— 常用控件说明及其属性、事件

    [格式2]: ListBox对象.FindString(s,n); [功能]:在 ListBox 对象指定的列表框中查找字符串 s,查找的起始项为n+1,即 n 为开始查找的前一项的索引。...注意:FindString 方式只是词语部分匹配,即要查找的字符串在列表项的开头,便认为是匹配的,如果要精确匹配,即只有在列表项与查找字符串完全一致时才认为匹配,可使用FindStringExact方法...MDI程序中的应用程序窗口称为父窗口,应用程序内部的窗口称为子窗口。虽然 MDI应用程序可以具有多个子窗口, 但是每个子窗口却只能有一个父窗口。此外,处于活动状态的子窗口最大数目是 1。...一个子窗口在功能上可能与父窗口的其他子窗口不同,例如,一个子窗口可能用于编辑图像,另一个子窗口可能用于编辑文本,第 3 个子窗口可以使用图形来显示数据,但是所有的窗口都属于相同的MDI父窗口。...图 10-19 是一个典型的 MDI应用程序。外面的窗口是应用程序口,里面的两个小窗口是 MDI子窗口。 2.与 MDI应用程序设计有关的属性、方法和事件 常用的MDI父窗体属性如下。

    9.9K20

    华中数控铣床加工中心系统坐标系和刀具表参数该如何设置?

    坐标系 MDI 输入坐标系数据的操作步骤如下: (1)在MDI 功能子菜单下按F3 键进入坐标系手动数据输入方式,图形显示窗口首先显示G54坐标系数据,如下图所示: (2)按Pgdn 或Pgup 键,...刀库表 MDI 输入刀库数据的操作步骤如下: (1) 在MDI 功能子菜单下按“F1”键,进行刀库设置,图形显示窗口将出现刀库数据,如下图所示: (2) 用上下左右移动蓝色亮条选择要编辑的选项;(3)...按Enter 键蓝色亮条所指刀库数据的颜色和背景都发生变化,同时有一光标在闪烁; (4) 用上下左右键进行编辑修改; (5) 修改完毕,按Enter 键确认; (6) 若输入正确,图形显示窗口相应位置将显示修改过的值...刀具表 MDI 输入刀具数据的操作步骤如下: (1) 在MDI 功能子菜单下按F2 键进行刀具设置,图形显示窗口将出现刀具数据如下图所示: (2) 用上下左右移动蓝色亮条选择要编辑的选项; (3) 按...Enter 键蓝色亮条所指刀具数据的颜色和背景都发生变化,同时有一光标在闪烁; (4) 用上下左右键进行编辑修改; (5) 修改完毕按Enter 键确认; (6) 若输入正确,图形显示窗口相应位置将显示修改过的值

    2.2K10

    网络知识:46张图带你了解网络传输、WIFI、以太网协议和网络寻址

    为了避免我们陷入此困境,我们拥有一项成为「Auto MDI-X」 的技术,尽管 「Auto MDI-X」 可以支持的设备可以检测是否使用了错误的线缆,然后,可以再逻辑上切换引脚的功能,使其与电缆相匹配,...光纤 光纤 铜缆的替代品就是光纤,光纤使用的材质是「玻璃束」,使用这种材质,脉冲信号会从「玻璃束」的一端通过「玻璃束体」向另一端传递。...需要使用什么类型的电缆? 2、使用哪种类型的UTP电缆将主机连接到交换机?那种类型的电缆可以将一个交换机连接到另一个交换机? 3、哪种情况下我们需要使用 Auto MDI-X 技术?...IP寻址并发送信息 所以「MAC地址」通常都用于局部网络中的设备查找,而「IP地址」因为由管理员分配,这意味着每个国家,每个地区,每个城市的「IP地址」都有具体分配的「IP地址段」,这就很方便我们查找了...,当我们想要给一个异国他乡的亲友发送信息时,只需要先来确定它的「IP地址」所在地区,然后再具体查找它的设备,这将变得非常容易。

    1.1K20

    保证相同类型的MDI子窗体只会被打开一次的方法

    本文转载:http://www.cnblogs.com/Ricky81317/archive/2008/09/17/1292443.html 看到论坛中有朋友问,如何可以保证在MDI主窗体中,同一类型的子窗体只能打开一次...我实现的基本思路是: 一般每个子窗体都是继承自Form类型,不同子窗体分别代表不同的功能,因此只需要判断当前MDI打开的子窗体的类型中有没有当前需要打开的子窗体类型就行了,如果有,则直接激活,如果没有则创建一个并加到主窗体中...具体实现起来有很多种办法,这里只写出一个利用泛型的实现: /// /// 打开MDI子窗口并附加到MDI主窗口中,如果MDI主窗口中已经存在相同类型的子窗口,则直接激活 /// /// MDI子窗体类型 /// MDI主窗体引用 //.../ 当前创建或得到的MDI子窗体类型实例的引用 private T OpenUniqueMDIChildWindow(Form mdiParent) where

    1K10

    VB 子窗体被PictureBox控件挡住无法显示

    1、问题描述     VB做机房收费系统的时候,用的MDI主窗体,在主窗体上加了一个Picturebox控件,运行的时候,点了子窗体,但是却没有出现,后来才发现,子窗体被Picturebox控件给当在了后面...2、问题原因    在MDI程序中,子窗体实际位于MDIClient里,就是说,子窗体的父窗体是MDIClient,而PictureBox和MDIClient属于同一级的    层次结构    ThunderMDIForm-MDIForm1...参数:    hWndChild:子窗口句柄。hWndNewParent:新的父窗口句柄。如果该参数是NULL,则桌面窗口就成为新的父窗口。    ...返回值:    如果函数成功,返回值为子窗口的原父窗口句柄;如果函数失败,返回值为NULL。...,frmMain窗体不可以是MDI窗体,要用一般的Form窗体,否则的话,当你运行的时候,它会提醒你——“实时错误426”,只允许一个MDI窗体。

    1.4K20

    46张图带你了解线缆、WIFI、以太网协议和网络寻址

    为了避免我们陷入此困境,我们拥有一项成为「Auto MDI-X」 的技术,尽管 「Auto MDI-X」 可以支持的设备可以检测是否使用了错误的线缆,然后,可以再逻辑上切换引脚的功能,使其与电缆相匹配,...光纤 铜缆的替代品就是光纤,光纤使用的材质是「玻璃束」,使用这种材质,脉冲信号会从「玻璃束」的一端通过「玻璃束体」向另一端传递。...需要使用什么类型的电缆? 2、使用哪种类型的UTP电缆将主机连接到交换机?那种类型的电缆可以将一个交换机连接到另一个交换机? 3、哪种情况下我们需要使用 Auto MDI-X 技术?...IP寻址并发送信息 所以「MAC地址」通常都用于局部网络中的设备查找,而「IP地址」因为由管理员分配,这意味着每个国家,每个地区,每个城市的「IP地址」都有具体分配的「IP地址段」,这就很方便我们查找了...,当我们想要给一个异国他乡的亲友发送信息时,只需要先来确定它的「IP地址」所在地区,然后再具体查找它的设备,这将变得非常容易。

    1.2K41

    windows下 mongodb 连接,备份,还原远程服务器上的数据库(在cmd命令窗口实现)

    Windows下远程连接服务器上的MongoDB数据库 使用的是mongo命令,如果安装mongodb时配置了环境变量,可以直接快捷键windows+R打开cmd。...管理员身份cmd执行如下语句:      mongo -h ip:端口/数据库名 -u user -p password 需要服务器的ip和端口,要连接的数据库名,并指定其用户名和密码,即可连接到指定的...Windows下备份远程服务器上的数据库到本机 同样,cmd运行如下命令: mongodump -h ip -u user -p password  -d 要备份的数据库名 -o 备份到哪个路径 如下图...将备份的数据库还原到本地的mongodb实例 备份成功后会得到数据库文件夹,其中的文件格式是json和bson两种,通过mongorestore 命令进行还原: mongorestore -d 新数据库名称...打开mongodb compass 客户端连接后可以看到新增了一个名为newtest的数据库,或者在cmd中通过show dbs 查看数据库列表。

    4.3K30

    常用快捷键整理

    (用加粗标注的是我个人使用时常用的,其实这个全凭个人喜好,大家可以熟悉一下自己喜欢的,都多试试,把觉得有用的记一下,多使用,后续写代码效率就会提高一些) 常用VS运行调试程序快捷键 编译.编译程序:Ctrl...编辑.转换为大写Ctrl + Shift + U 编辑.转换为小写Ctrl + U将选定文本更改为小写字符 编辑.当前行任意位置上开新行Ctrl + Enter在插入点之上插入一个空行 编辑.当前行任意位置下开新行...F3 查找上次搜索文本的下一个匹配项。...编辑.查找下一个 F4 查找上次搜索文本的上一个匹配项。 编辑.文档结尾 CTRL + END 将插入点快速移动到文档的最后一行。...编辑.CTRL + TAB / CTRL + SHIFT +TAB逐个窗口地循环通过打开的多个编辑文件的MDI 子窗口。

    7710

    CAD有可能窗口的组织

    现在图纸比较工具都用预览功能,但是现在基于acad二次开发的专业软件多了,不定什么时候即就搞得acad崩溃,就算是autodesk自己的实例程序blockview也一样,没办法,先预一个双窗体功能,如果需要的话可以让它们进行比较...注意:随着版本升级,CAD有可能窗口的组织方式会变化,要结合Spy++等工具查看cad的窗体结构和窗体信息,并且灵活运用VC的断点调试查看FindWindowEx函数是否捕捉到了正确的窗体句柄,才能保证代码正常工作...111 RECT rect; ::GetClientRect(acedGetAcadFrame()->m_hWndMDIClient,&rect); //获取MDI区域大小 CWnd * pMdi=...acedGetAcadFrame()->FindWindowEx(acedGetAcadFrame()->m_hWnd,NULL,_T("MDIClient"),NULL); //获取MDI区域窗体句柄...HWND h_pSub1=::FindWindowEx(pMdi->m_hWnd,NULL,NULL,_T("Drawing1.dwg")); //根据需要修改要查找的窗体标题,打开的图纸往往在标题里包含文件名

    14520

    CC++ Qt MdiArea 多窗体组件应用

    MDI多窗体组件,主要用于设计多文档界面应用程序,该组件具备有多种窗体展示风格,其实现了在父窗体中内嵌多种子窗体的功能,使用MDI组件需要在UI界面中增加mdiArea控件容器,我们所有的窗体创建与操作都在这个容器内进行...,在toolBar中增加相应的菜单栏,并在主窗体中放入mdiArea容器组件。...窗体中的顶部菜单栏,我们需要手动定义一下他们所具备的功能名称等。...MDI formDoc->show(); //在单独的窗口中显示 } // 关闭全部 void MainWindow::on_actionClose_triggered() { ui->...mdiArea->closeAllSubWindows(); //关闭所有子窗口 } 代码运行效果如下: 当用户点击MDI模式时,我们则执行以下代码,将所有已存在的窗体合并为一个类似于TabWidget

    1.1K20

    CC++ Qt MdiArea 多窗体组件应用

    MDI多窗体组件,主要用于设计多文档界面应用程序,该组件具备有多种窗体展示风格,其实现了在父窗体中内嵌多种子窗体的功能,使用MDI组件需要在UI界面中增加mdiArea控件容器,我们所有的窗体创建与操作都在这个容器内进行...,在toolBar中增加相应的菜单栏,并在主窗体中放入mdiArea容器组件。...图片窗体中的顶部菜单栏,我们需要手动定义一下他们所具备的功能名称等。...MDI formDoc->show(); //在单独的窗口中显示}// 关闭全部void MainWindow::on_actionClose_triggered(){ ui->mdiArea...->closeAllSubWindows(); //关闭所有子窗口}代码运行效果如下:图片当用户点击MDI模式时,我们则执行以下代码,将所有已存在的窗体合并为一个类似于TabWidget的窗体组件。

    1.2K40

    写字板(Windows程序设计)

    、修饰等,均有相应的菜单来控制,常用的菜单项配备相应的工具栏按钮(可参照Windows自带的写字板) 按需添加其他的代码,如窗口的布局等; 实现自定义的查找对话框,有能力的同学可进一步实现替换/全文替换等功能...状态栏中显示学生学号、姓名等信息,在窗口的标题中显示当前正在编辑的文件名 (可选)其他你觉得实用的功能:如支持word等 (可选)将其改造成MDI程序:父窗口中包含新建、窗口、帮助等菜单;在运行时,子窗口的菜单会与其合并...,合理设置各菜单项的MergeIndex/MergeAction属性,使其符合我们的使用习惯;编程允许用户调整各自窗口间的布局关系(平铺、层叠等)等 先看效果 解决方法 richtextbox...  这是一个MDI调整子窗体使用DropDownItemClicked的例子,高效优雅 = v = private void 窗口WToolStripMenuItem_DropDownItemClicked...的使用,是为了让一个父窗体拥有许多个子窗体,进行更加简单有效的操作 在父窗体new子窗体就行,记得一系列基本操作,你也可以通过生成函数和属性进行快速高效设置 private void 新建ToolStripMenuItem_Click

    1.1K10

    C++ Qt开发:MdiArea多窗体组件

    读者在使用MDI组件时,需要在UI界面中增加mdiArea控件容器,之后所有窗体创建与操作都要在容器内进行,其次由于MDI窗体组件仅仅是一个画布只具备限制窗口的作用,无法实现生成窗体,所以需要在项目中手动增加自定义...在子窗口模式下,QMdiArea管理并显示各个子窗口,允许用户同时查看和编辑多个文档。 析构函数: 析构函数中执行了 delete ui;,确保在对象销毁时释放与ui相关的资源,避免内存泄漏。...MDI ui->mdiArea->addSubWindow(formDoc); // 在单独的窗口中显示 formDoc->show(); } // 关闭全部 void MainWindow...标签页多页显示模式(QMdiArea::TabbedView) 在这种模式下,子窗口以标签页的形式显示在主窗口的顶部,用户可以通过点击标签页来切换不同的子窗口。...提供了标签页的关闭按钮,允许用户关闭特定的标签页。 级联模式和平铺模式 这两种模式是在标签页多页显示模式下的两种特定排列方式。

    1.8K10
    领券