一、新建MFC的dialog工程
二、配置halcon环境
vc++目录--包含目录:C:\Program Files\MVTec\HALCON-12.0\include
C:\Program Files\MVTec\HALCON-12.0\include\halconcpp
库目录:C:\Program Files\MVTec\HALCON-12.0\lib\x64-win64
附加依赖项:halconcpp.lib
三、打开资源视图,添加按钮控件和图像控件
四、添加#include“halconcpp.h”头文件和using namespace HalconCpp命名空间;
五、在按钮控件的消息响应函数中添加如下代码
//halcon中只有图像、区域、XLD为Object类型,其余都为Tuple类型
HObject ho_Image1;
HTuple hv_Width, hv_Height, hv_WindowHandle, kuan, gao;
//定义一个句柄
HWND hwnd;
//GetDlgItem(ID号),通过ID号得到该控件,通过指针访问其成员变量
//每个控件都有个成员变量m_hWnd,即该控件的句柄,
hwnd = GetDlgItem(IDC_STATIC)->m_hWnd;
//强制类型转化
LONG windowID = (LONG)hwnd;
//定义一个矩形变量
CRect rect;
GetDlgItem(IDC_STATIC)->GetWindowRect(&rect);
kuan[0] = rect.Width();
gao[0] = rect.Height();
ReadImage(&ho_Image1, "screw_thread");
GetImageSize(ho_Image1, &hv_Width, &hv_Height);
SetWindowAttr("background_color", "black");
//得到控件的句柄,放入第五个参数,即在该控件上打开一个窗口,
//获得控件窗口的宽和高,分别放入第三、四个参数,则图像在整个控件窗口上显示
OpenWindow(0, 0, kuan[0], gao[0], windowID, "", "", &hv_WindowHandle);
HDevWindowStack::Push(hv_WindowHandle);
if (HDevWindowStack::IsOpen())
DispObj(ho_Image1, HDevWindowStack::GetActive());
六、显示效果
网友评论