转自:https://blog.csdn.net/ahuang1900/article/details/17386611

在opencv中可以通过cvGetWindowHandle获取窗口句柄。cvGetWindowHandle的返回值解释为:函数cvGetWindowHandle返回原始的窗口句柄(在Win32情况下返回HWND,GTK+情况下返回GtkWidget)。一开始的处理时,通过以下方法:

 
  1. cvNamedWindow("raw");

  2. HWND hWnd = (HWND)cvGetWindowHandle("raw");

  3. ShowWindow(hWnd, 0); //0的时候表示隐藏窗口

结果显示为:

从上面看,窗口显然没有隐藏起来。经过一番验证,原来hWnd指向的不是“raw”窗口的句柄。通过查看cvNameWindow代码,原来cvNameWindow创建窗口的时候会创建两个窗口,一个主窗口,一个子窗口。

代码如下:

 
  1. CV_IMPL int cvNamedWindow( const char* name, int flags )

  2. {

  3. ...... ......

  4. HWND hWnd, mainhWnd;

  5. CvWindow* window;

  6. DWORD defStyle = WS_VISIBLE | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_SYSMENU;

  7. ...... ......

  8. mainhWnd = CreateWindow( "Main HighGUI class", name, defStyle | WS_OVERLAPPED,

  9. rect.x, rect.y, rect.width, rect.height, 0, 0, hg_hinstance, 0 );

  10. if( !mainhWnd )

  11. CV_ERROR( CV_StsError, "Frame window can not be created" );

  12. ShowWindow(mainhWnd, SW_SHOW);

  13. //YV- remove one border by changing the style

  14. hWnd = CreateWindow("HighGUI class", "", (defStyle & ~WS_SIZEBOX) | WS_CHILD, CW_USEDEFAULT, 0, rect.width, rect.height, mainhWnd, 0, hg_hinstance, 0);

  15. if( !hWnd )

  16. CV_ERROR( CV_StsError, "Frame window can not be created" );

  17. ShowWindow(hWnd, SW_SHOW);

  18. ...... ......

  19. }

通过查看源代码,恍然大悟,于是将代码改成如下,即可。

 
  1. cvNamedWindow("raw");

  2. HWND hWnd = (HWND)cvGetWindowHandle("raw");

  3. HWND hRawWnd = ::GetParent(hWnd); //获得父窗口句柄

  4. ShowWindow(hWnd, 0); //0:的时候表示隐藏子窗口

  5. ShowWindow(hRawWnd, 0); //0:的时候表示隐藏父窗口

这样,opencv的窗口就不在显示了。看来以后要多跟跟源代码,这样可以减少一些不必要的功夫。

opencv如何隐藏窗口-cvNameWindow创建窗口的时候会创建两个窗口,一个主窗口,一个子窗口。相关推荐

  1. idl结果显示窗口如何缩小_科学网—IDL 创建窗口 - 钱磊的博文

    一直以来我都觉得写程序创建一个窗口,添加些按钮,显示些会变化的文字是十分神奇的事.但是又懒又笨,一直没学会.最近开始考虑做一个观测模拟系统,模拟一个射电天文望远镜的控制界面.这种东西每个望远镜都由,估 ...

  2. java语言怎么建立窗口awt,java.awt.Frame类:创建窗口

    创建窗口是 AWT 编程的第一步,窗口是所有组件和面板的容器. 在 Java AWT 中,我们使用 Frame 类来创建窗口.Frame 中文字意是"框架",它的主要功能是建立窗口 ...

  3. 创建一个简单的应用程序窗口,显示“欲穷千里目 更上一层楼”。这一行文字从窗口中向左滚动显示,而且每显示一轮,改变一次颜色,改变一次字体,一个周期为4种颜色,分别为红、绿、黄、蓝,四种字体分别为宋体、楷

    创建一个简单的应用程序窗口,显示"欲穷千里目 更上一层楼".这一行文字从窗口中向左滚动显示,而且每显示一轮,改变一次颜色,改变一次字体,一个周期为4种颜色,分别为红.绿.黄.蓝,四 ...

  4. python窗体开发环境_Python窗口开发环境boa-constructor教程2:创建状态栏:

    1. 在编辑器窗口中,选择"frame1"的选项,点击设计按钮 2在最上方的palette窗口,选择 容器/设计(containers/layout),点击tooptips&quo ...

  5. 8.1 matlab图形窗口与坐标轴(图形对象的句柄和属性、坐标轴的操作、图形窗口的操作)

    1.图形对象的句柄 (1)句柄的概念 在MATLAB中,用句柄来标识对象,通过句柄来访问相应对象的属性:在MATLAB系统中建立-个对象,系统就会建立-个映射该对象的句柄,用于存诸相应对象的属性. 例 ...

  6. 计算机word窗口的组成,推计算机等级考试题库:一级MS Office第三章“Word窗口及其组成”(一)...

    小编所收集到的相关计算机等级考试题库:一级MS Office第三章"Word窗口及其组成"的资料 大家要认真阅读哦! Word窗口由标题栏.快速访问工具栏.文件选项卡.功能区.工作 ...

  7. linux 进程间界面嵌套,WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口)...

    WPF 的 UI 逻辑只在同一个线程中,这是学习 WPF 开发中大家几乎都会学习到的经验.如果希望做不同线程的 UI,大家也会想到使用另一个窗口来实现,让每个窗口拥有自己的 UI 线程.然而,就不能让 ...

  8. eclipse java shell 窗体显示 bat运行不显示_java eclipse中如何实现点击主窗口sShell中的按钮打开另外一个子窗口sShell...

    java eclipse中如何实现点击主窗口sShell中的按钮打开另外一个子窗口sShell 关注:97  答案:2  mip版 解决时间 2021-01-31 13:01 提问者╬═掵中注定 20 ...

  9. html打开新窗口设置窗口属性,HTML之:让网页中的a标签属性统一设置-如‘新窗口打开’...

    在开发过程中,我们往往想在页面中,给设置一个统一的默认格式,例如我们想让链接:"在新窗口打开",我们就可以使用标签 在网页中添加这段代码: [注解] 标签为页面上的所有链接规定默认 ...

  10. Ubuntu16.04 开启多个终端,一个终端多个小窗口

    Ubuntu16.04 开启多个终端,一个终端多个小窗口 Ctrl+Shift + T,一个终端开启多个小终端 Ctrl+Alt + T 开启多个终端 posted on 2019-03-15 11: ...

最新文章

  1. 常用的shell脚本
  2. c语言 申请1k内存,怎么解决函数内申请内存,函数外释放的问题
  3. 今天的快乐从何而来的飞鸽传书
  4. Android中VectorDrawable与SVG
  5. 推荐系统学习(二)基于用户/物品的协同过滤算法(User-CF / Item-CF)
  6. 当一个人把一个行业说得特别容易赚钱的时候
  7. 安装SQLServer2008失败
  8. 关于备考软考过程中历年真题的说明
  9. 如何把JSON对象转为map对象
  10. Express全系列教程之(六):cookie的使用
  11. 四分位距IQR interquartile range
  12. 海思SDK学习(11)海思媒体处理软件平台MMP(10)VGS视频图形子系统
  13. Java 2 实用教程(第5版)耿祥义版 习题七
  14. Flask报错:sqlite3.IntegrityError: NOT NULL constraint failed: step. date
  15. AD10 report_drc.xsl不存在解决方法
  16. [ Linux ] 零散文件系统安装各种命令和软件的方法
  17. 核酸检测预约和结果查询系统
  18. 高中教师资格证笔试计算机学科知识与能力,2018下半年教师资格证考试笔试-高中信息技术学科知识与能力试题答案...
  19. 《软件体系结构》习题解答(二)
  20. GitLab-CI持续集成(CI)的介绍与运行机制

热门文章

  1. java 遍历json串_Java遍历json字符串取值的实例
  2. USB STM32配置
  3. Android JS交互-记录我所遇到的
  4. SQL Server 双机热备份-实现主从复制
  5. 股票python量化交易014-计算收益率
  6. UNIAPP使用MathJax解析数学公式
  7. 存在感应雷达模块,LED灯感应控制,微波雷达技术应用
  8. 利用爬虫编译翻译器 (包含防御反爬虫)
  9. 数码照片的Photoshop清晰化处理漫谈-photoshop-Photoshop-天极Yesky
  10. ROS里程计的学习(odometry) (一)