环境: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
(2)其次将Halcon相应库文件导入到工程。具体将F:\Program Files\MVTec\HALCON-17.12-Progress\lib\x64-win64导入到工程连接器->常规->附加库目录中。如下图所示
(3)最后将halconcpp.lib导入到MFC中连接器->输入->附加依赖项中。如下图。
3、配置基本完成,接下来进行测试。
在MFCHaiconTest.h中添加如下声明
#include "HalconCpp.h";
#pragma comment(lib,"halconcpp.lib")
using namespace HalconCpp;
还是新建一个对话框程序,然后添加一个按钮和一个PictureControl控件,控件的ID默认为IDC_STATIC。
然后双击按钮填写按钮的响应函数,这里为了方便把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函数,作用是调整图片在窗口中的位置(设定图片左上角坐标和右下角坐标)
最后实现的效果如下:
参考博文:https://blog.csdn.net/qq_33850438/article/details/78175445