MFC的PictureControl控件上展示Halcon的窗体

自定义函数:id是MFC窗体上的PictureControl控件的ID,此函数返回halcon的HTuple类型。

HTuple initPicControl(int id);

复制代码
HTuple CHalconMFC1219Dlg::initPicControl(int id)//初始化halcon窗体控件到pictureControl控件上
{
    HTuple hWindow;
    CRect Rect;
    HWND hWnd = GetDlgItem(id)->GetSafeHwnd();//获取控件句柄
    ::GetWindowRect(hWnd, &Rect);//获取控件大小
    OpenWindow(0, 0, Rect.Width(), Rect.Height(), (Hlong)hWnd, "visible", "", &hWindow);

    return hWindow;
}
复制代码

使用方法:以CHalconMFC1219Dlg工程为例

1、复制粘贴上述代码到CHalconMFC1219Dlg.cpp中,作为类的成员函数。在头文件里添加一行代码

HTuple hWindow;

2、在OnInitDialog()函数中调用此函数。

复制代码
BOOL CHalconMFC1219Dlg::OnInitDialog()
{
    CDialogEx::OnInitDialog();

    // 设置此对话框的图标。  当应用程序主窗口不是对话框时,框架将自动
    //  执行此操作
    SetIcon(m_hIcon, TRUE);            // 设置大图标
    SetIcon(m_hIcon, FALSE);        // 设置小图标

    // TODO:  在此添加额外的初始化代码
    hWindow=initPicControl(IDC_PictureControl);

    return TRUE;  // 除非将焦点设置到控件,否则返回 TRUE
}
复制代码

 按钮事件函数

HImage Mandrill("monkey"); 
Hlong width, height; 
Mandrill.GetImageSize(&width, &height); 
SetPart(hWindow,0,0,height-1,width-1); //图片适应窗体
DispObj(Mandrill,hWindow); //显示在hWindow上

 

posted @   夕西行  阅读(999)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· 字符编码:从基础到乱码解决
· Open-Sora 2.0 重磅开源!
历史上的今天:
2018-12-19 编译预处理指令:文件包含指令、宏定义指令、条件编译指令
点击右上角即可分享
微信分享提示