环境:Halcon17.12和 VS2015

1、首先创建一个MFC工程,取名MFCHaiconTest

2、将Halcon相关路径导入到工程

(1)首先将Halcon安装目录include和cpp目录导入到VC++目录中Include Directories(包含目录)。具体操作,直接在解决方案右击项目->属性。即可。具体目录参考(不同安装路径不同,版本基本一致):F:\Program Files\MVTec\HALCON-17.12-Progress\include,F:\Program Files\MVTec\HALCON-17.12-Progress\include\halconcpp

HaIcon17.12与MFC混合编程 环境配置

 

(2)其次将Halcon相应库文件导入到工程。具体将F:\Program Files\MVTec\HALCON-17.12-Progress\lib\x64-win64导入到工程连接器->常规->附加库目录中。如下图所示

HaIcon17.12与MFC混合编程 环境配置

(3)最后将halconcpp.lib导入到MFC中连接器->输入->附加依赖项中。如下图。

HaIcon17.12与MFC混合编程 环境配置

3、配置基本完成,接下来进行测试。

在MFCHaiconTest.h中添加如下声明

#include "HalconCpp.h";
#pragma comment(lib,"halconcpp.lib")
using namespace HalconCpp;

还是新建一个对话框程序,然后添加一个按钮和一个PictureControl控件,控件的ID默认为IDC_STATIC。

HaIcon17.12与MFC混合编程 环境配置

然后双击按钮填写按钮的响应函数,这里为了方便把halcon的变量直接定义在了响应函数中:

void CMFCHicontTestDlg::OnBnClickedButton1()
{
    // TODO: 在此添加控件通知处理程序代码

    HObject  ho_Image;
    HTuple HWindowID;
    CRect Rect;
    HTuple m_HWindowID;
    HTuple m_ImageWidth, m_ImageHeight;

    CWnd * pWnd = GetDlgItem(IDC_STATIC);
    HWindowID = (Hlong)pWnd->m_hWnd;//获取父窗口句柄
    pWnd->GetWindowRect(&Rect);
    OpenWindow(0, 0, Rect.Width(), Rect.Height(), HWindowID, "visible", "", &m_HWindowID);
    //显示静态图片
    ReadImage(&ho_Image, "E:/壁纸/car.jpg");
    GetImagePointer1(ho_Image, NULL, NULL, &m_ImageWidth, &m_ImageHeight);
    SetPart(m_HWindowID, 0, 0, m_ImageHeight - 1, m_ImageWidth - 1);
    DispObj(ho_Image, m_HWindowID);
}

使用OpenWindow时将PictureControl控件的大小传进去,作为开辟的Halcon窗口的大小,这样两个窗口叠加在一起了。

SetPart是Halcon函数,作用是调整图片在窗口中的位置(设定图片左上角坐标和右下角坐标)

最后实现的效果如下:

HaIcon17.12与MFC混合编程 环境配置

参考博文:https://blog.csdn.net/qq_33850438/article/details/78175445

https://www.cnblogs.com/oucsheep/p/5911839.html

相关文章:

  • 2021-08-29
  • 2022-01-11
  • 2021-07-24
  • 2021-06-03
  • 2021-06-20
  • 2021-07-14
  • 2020-10-13
  • 2022-12-23
猜你喜欢
  • 2021-04-27
  • 2021-08-04
  • 2021-11-15
  • 2022-12-23
  • 2021-07-13
  • 2021-12-09
  • 2021-07-17
相关资源
相似解决方案