泡视界 2021-04-01 17:10 采纳率: 0%
浏览 114
已结题

如何将opencv imshow结果显示在Win API CreateWindow创建的静态窗口中

1.没有使用MFC,没法使用MFC 的picture控件

2.我创建了一个静态窗口

HWND imgWH= CreateWindow(
L"STATIC",//设置为静态窗口
L"Whatever",//随意设置
WS_CHILD | WS_VISIBLE | SS_BITMAP,//设置了BITMAP类型
0,                                  /*X co-ordinates*/
0,                                  /*Y co-ordinates*/
800,                                /*Width*/
600,                                /*Height*/
hWnd,                               /*Parent HWND*/
(HMENU) 233,                        // ID随意设置一个独特的数字
(HINSTANCE)GetWindowLong(hWnd, GWLP_HINSTANCE), /*The HINSTANCE of your program*/
NULL);

2. 然后看网上用MFC的方法是将imshow的parent句柄设置城控件的句柄,我这里就相应改成设置成我创建的句柄 imgWH

namedWindow("test", 0);//OpenCV的窗口
HWND imshowH = (HWND)cvGetWindowHandle(DISPLAY_WINDOW_NAME);//获取其句柄
HWND imshowParentH = GetParent(imshowH);//获取其原本的父句柄
SetParent(imshowH, imgWH); //重设父句柄为上面创建的窗口句柄
ShowWindow(imshowParentH, SW_HIDE);//imshow的原本父句柄窗口隐藏

3. 但在实现了句柄的关联之后,网上用了MFC控件的成员函数ShowWindow来更新窗口画面,我这种只用Win API的要怎么实现画面显示呢?

 

有没有懂哥帮帮我?

  • 写回答

1条回答 默认 最新

  • 泡视界 2021-04-01 17:57
    关注

    ……我自己搞出来了,以下分享:

    1. Win API 和MFC的方式一致,就是把imshow的父句柄重设为CreateWindow创建的静态窗口的句柄。

    2.imshow后,图片就可以显示了。我没显示的原因是一直没获取到我创建的窗口的句柄,一直设置null进去……

    评论

报告相同问题?

悬赏问题

  • ¥17 pro*C预编译“闪回查询”报错SCN不能识别
  • ¥15 微信会员卡接入微信支付商户号收款
  • ¥15 如何获取烟草零售终端数据
  • ¥15 数学建模招标中位数问题
  • ¥15 phython路径名过长报错 不知道什么问题
  • ¥15 深度学习中模型转换该怎么实现
  • ¥15 HLs设计手写数字识别程序编译通不过
  • ¥15 Stata外部命令安装问题求帮助!
  • ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
  • ¥15 TYPCE母转母,插入认方向