opencv如何隐藏窗口-cvNameWindow创建窗口的时候会创建两个窗口,一个主窗口,一个子窗口。
转自:https://blog.csdn.net/ahuang1900/article/details/17386611
在opencv中可以通过cvGetWindowHandle获取窗口句柄。cvGetWindowHandle的返回值解释为:函数cvGetWindowHandle返回原始的窗口句柄(在Win32情况下返回HWND,GTK+情况下返回GtkWidget)。一开始的处理时,通过以下方法:
cvNamedWindow("raw");
HWND hWnd = (HWND)cvGetWindowHandle("raw");
ShowWindow(hWnd, 0); //0的时候表示隐藏窗口
结果显示为:
从上面看,窗口显然没有隐藏起来。经过一番验证,原来hWnd指向的不是“raw”窗口的句柄。通过查看cvNameWindow代码,原来cvNameWindow创建窗口的时候会创建两个窗口,一个主窗口,一个子窗口。
代码如下:
CV_IMPL int cvNamedWindow( const char* name, int flags )
{
...... ......
HWND hWnd, mainhWnd;
CvWindow* window;
DWORD defStyle = WS_VISIBLE | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_SYSMENU;
...... ......
mainhWnd = CreateWindow( "Main HighGUI class", name, defStyle | WS_OVERLAPPED,
rect.x, rect.y, rect.width, rect.height, 0, 0, hg_hinstance, 0 );
if( !mainhWnd )
CV_ERROR( CV_StsError, "Frame window can not be created" );
ShowWindow(mainhWnd, SW_SHOW);
//YV- remove one border by changing the style
hWnd = CreateWindow("HighGUI class", "", (defStyle & ~WS_SIZEBOX) | WS_CHILD, CW_USEDEFAULT, 0, rect.width, rect.height, mainhWnd, 0, hg_hinstance, 0);
if( !hWnd )
CV_ERROR( CV_StsError, "Frame window can not be created" );
ShowWindow(hWnd, SW_SHOW);
...... ......
}
通过查看源代码,恍然大悟,于是将代码改成如下,即可。
cvNamedWindow("raw");
HWND hWnd = (HWND)cvGetWindowHandle("raw");
HWND hRawWnd = ::GetParent(hWnd); //获得父窗口句柄
ShowWindow(hWnd, 0); //0:的时候表示隐藏子窗口
ShowWindow(hRawWnd, 0); //0:的时候表示隐藏父窗口
这样,opencv的窗口就不在显示了。看来以后要多跟跟源代码,这样可以减少一些不必要的功夫。
opencv如何隐藏窗口-cvNameWindow创建窗口的时候会创建两个窗口,一个主窗口,一个子窗口。相关推荐
- idl结果显示窗口如何缩小_科学网—IDL 创建窗口 - 钱磊的博文
一直以来我都觉得写程序创建一个窗口,添加些按钮,显示些会变化的文字是十分神奇的事.但是又懒又笨,一直没学会.最近开始考虑做一个观测模拟系统,模拟一个射电天文望远镜的控制界面.这种东西每个望远镜都由,估 ...
- java语言怎么建立窗口awt,java.awt.Frame类:创建窗口
创建窗口是 AWT 编程的第一步,窗口是所有组件和面板的容器. 在 Java AWT 中,我们使用 Frame 类来创建窗口.Frame 中文字意是"框架",它的主要功能是建立窗口 ...
- 创建一个简单的应用程序窗口,显示“欲穷千里目 更上一层楼”。这一行文字从窗口中向左滚动显示,而且每显示一轮,改变一次颜色,改变一次字体,一个周期为4种颜色,分别为红、绿、黄、蓝,四种字体分别为宋体、楷
创建一个简单的应用程序窗口,显示"欲穷千里目 更上一层楼".这一行文字从窗口中向左滚动显示,而且每显示一轮,改变一次颜色,改变一次字体,一个周期为4种颜色,分别为红.绿.黄.蓝,四 ...
- python窗体开发环境_Python窗口开发环境boa-constructor教程2:创建状态栏:
1. 在编辑器窗口中,选择"frame1"的选项,点击设计按钮 2在最上方的palette窗口,选择 容器/设计(containers/layout),点击tooptips&quo ...
- 8.1 matlab图形窗口与坐标轴(图形对象的句柄和属性、坐标轴的操作、图形窗口的操作)
1.图形对象的句柄 (1)句柄的概念 在MATLAB中,用句柄来标识对象,通过句柄来访问相应对象的属性:在MATLAB系统中建立-个对象,系统就会建立-个映射该对象的句柄,用于存诸相应对象的属性. 例 ...
- 计算机word窗口的组成,推计算机等级考试题库:一级MS Office第三章“Word窗口及其组成”(一)...
小编所收集到的相关计算机等级考试题库:一级MS Office第三章"Word窗口及其组成"的资料 大家要认真阅读哦! Word窗口由标题栏.快速访问工具栏.文件选项卡.功能区.工作 ...
- linux 进程间界面嵌套,WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口)...
WPF 的 UI 逻辑只在同一个线程中,这是学习 WPF 开发中大家几乎都会学习到的经验.如果希望做不同线程的 UI,大家也会想到使用另一个窗口来实现,让每个窗口拥有自己的 UI 线程.然而,就不能让 ...
- eclipse java shell 窗体显示 bat运行不显示_java eclipse中如何实现点击主窗口sShell中的按钮打开另外一个子窗口sShell...
java eclipse中如何实现点击主窗口sShell中的按钮打开另外一个子窗口sShell 关注:97 答案:2 mip版 解决时间 2021-01-31 13:01 提问者╬═掵中注定 20 ...
- html打开新窗口设置窗口属性,HTML之:让网页中的a标签属性统一设置-如‘新窗口打开’...
在开发过程中,我们往往想在页面中,给设置一个统一的默认格式,例如我们想让链接:"在新窗口打开",我们就可以使用标签 在网页中添加这段代码: [注解] 标签为页面上的所有链接规定默认 ...
- Ubuntu16.04 开启多个终端,一个终端多个小窗口
Ubuntu16.04 开启多个终端,一个终端多个小窗口 Ctrl+Shift + T,一个终端开启多个小终端 Ctrl+Alt + T 开启多个终端 posted on 2019-03-15 11: ...
最新文章
- 常用的shell脚本
- c语言 申请1k内存,怎么解决函数内申请内存,函数外释放的问题
- 今天的快乐从何而来的飞鸽传书
- Android中VectorDrawable与SVG
- 推荐系统学习(二)基于用户/物品的协同过滤算法(User-CF / Item-CF)
- 当一个人把一个行业说得特别容易赚钱的时候
- 安装SQLServer2008失败
- 关于备考软考过程中历年真题的说明
- 如何把JSON对象转为map对象
- Express全系列教程之(六):cookie的使用
- 四分位距IQR interquartile range
- 海思SDK学习(11)海思媒体处理软件平台MMP(10)VGS视频图形子系统
- Java 2 实用教程(第5版)耿祥义版 习题七
- Flask报错:sqlite3.IntegrityError: NOT NULL constraint failed: step. date
- AD10 report_drc.xsl不存在解决方法
- [ Linux ] 零散文件系统安装各种命令和软件的方法
- 核酸检测预约和结果查询系统
- 高中教师资格证笔试计算机学科知识与能力,2018下半年教师资格证考试笔试-高中信息技术学科知识与能力试题答案...
- 《软件体系结构》习题解答(二)
- GitLab-CI持续集成(CI)的介绍与运行机制