MFC/HALCON混合编程系列二_打开两幅图_MFC布局_

在系列一中,窗口只在读取图像的时候打开。今天我们要在读取图像之前打开两个窗口,一个用于显示原图,一个用于显示处理后的效果图。如下图所示:
MFC/HALCON混合编程系列二_打开两幅图_MFC布局_
 
要完成这个任务,我们需要知道确定两方面内容:第一,什么时候打开窗口;第二,如何确定窗口的位置。
        首先来看第一个问题,要想在读取图像之前打开窗口,那么最好在对话框初始化的时候打开窗口。在对话框初始化函数 中添加如下代码:Halcon/C++中打开窗口的函数如下:
    open_window(10,10,320,300,lWWindowID,"visible","",&WindowHandle);
前面四个参数(左上点行列坐标,窗口的宽和高)定义了窗口的位置,第五个参数为指定窗口的父窗口,如果为“0”则父窗口为操作系统窗口。最后一个参数为打开窗口的句柄。
 
        第二个问题,使用图形控件,通过获取图形控件的位置和大小来确定打开的窗口的位置很大小。代码如下:
 
    GetDlgItem(IDC_DISPIMAGE)->GetClientRect(&rect);//IDC_DISPIMAGE为第一个图像控件的ID号,第二个窗口类似处理。
    hWnd = GetDlgItem(IDC_DISPIMAGE)->m_hWnd;
    open_window(rect.left, rect.top, rect.Width(), rect.Height(), (Hlong)hWnd, "visible"""&WindowHandle);
 
最终的显示效果如下图:
 
MFC/HALCON混合编程系列二_打开两幅图_MFC布局_
posted @ 2017-10-13 14:55  HappyEDay  阅读(959)  评论(0编辑  收藏  举报