打开VS,文件——新建——项目——Visual C++——MFC——MFC应用程序,注意下图,其他默认。窗体1个Button、1个Picture Control
【VS配置Halcon】
1、若halcon为64位,则其相应的文件也是64位的,所以选择x64。32位的同理。
2、项目——属性,C/C++——常规,附加包含目录里添加下图两个目录
链接器——常规,附加库目录中添加x64-win64,32位的就添加32位的。
链接器——输入,附加依赖项中添加HalconCpp.lib
【MFC文件中添加代码】从Halcon生成的cpp文件中,复制即可(void action()中的代码)
注意,代码添加在Dlg.cpp中
双击Button按钮即可跳转Dlg.cpp文件的单击事件函数处,粘贴void action()中的代码
同时,在最上方添加如下代码:
# include "HalconCpp.h"
using namespace HalconCpp;
运行即可。
为了使图像显示在Picture Control控件中,添加一些代码(红色部分)
void CMFCApplication3Dlg::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
// Local iconic variables
HObject ho_Image1; // Local control variables
HTuple hv_Width, hv_Height, hv_WindowHandle; ReadImage(&ho_Image1, "C:/Users/Jv/Desktop/1.jpg");
GetImageSize(ho_Image1, &hv_Width, &hv_Height);
SetWindowAttr("background_color", "black"); HWND hwnd1;
CRect rect;
GetDlgItem(IDC_STATIC)->GetWindowRect(&rect);
hwnd1 = GetDlgItem(IDC_STATIC)->m_hWnd;
LONG PictureControlID = (LONG)hwnd1; HTuple m_width, m_high;
m_width[0] = rect.Width();
m_high[0] = rect.Height(); OpenWindow(, , m_width,m_high, PictureControlID, "visible", "", &hv_WindowHandle);
HDevWindowStack::Push(hv_WindowHandle);
if (HDevWindowStack::IsOpen())
DispObj(ho_Image1, HDevWindowStack::GetActive());
}