halcon在MFC界面显示视频方法


1、建立MFC对话框工程(假设工程名为XX)。
2、在介面中新开一个图像控件(ID假设为IDC_STATIC_FGWIN).
(1)在XXDlg.h文件中添加控件变量
//{{AFX_DATA(CDisp_imageDlg)
......................
CStatic m_cFGWinStatic;// 要添加的语句
...........................
// NOTE: the ClassWizard will add data members here
//}}AFX_DATA
(2)在XXDlg.cpp文件中建立控件变量与图像控件之间的数据交换
void xxDlg::DoDataExchange(CDataExchange* pDX)
{
   CDialog::DoDataExchange(pDX);

   //{{AFX_DATA_MAP(xxDlg)
    // NOTE: the ClassWizard will add DDX and DDV calls here
   DDX_Control(pDX, IDC_STATIC_FGWIN, m_cFGWinStatic);//添加的语句
   //}}AFX_DATA_MAP
}
3、增加消息ON_WM_TIMER(用于后面的定时50ms显示一祯图像)
4、 (1)、为XXDlg类添加下面几个成员变量
HImage    Image;
HWindow            *m_pHWinFG;
HFramegrabber      *m_pFG;
(2)、在OnInitDialog函数里添加下面代码
CRect rect;
m_cFGWinStatic.GetClientRect(&rect);
set_check("~father");
m_pHWinFG = new HWindow(0,0,rect.Width(),rect.Height(),(int)m_cFGWinStatic.m_hWnd,"visible");
set_check("father");//连接窗口和图像控件
m_pFG= new HFramegrabber("DirectShow",1,1,0,0,0,0,"default",-1,"default",-1, "default","default","0",-1, -1);//这里依不同的视频设置可能有点不同
HImage m_hoImage;
m_hoImage = m_pFG->GrabImage();//获取一祯视频
m_pHWinFG->SetPart(0,0,m_hoImage.Height()-1,m_hoImage.Width()-1);//设置窗口和视频大小的一致
   set_check("father");
SetTimer(1,50,NULL);//开定时器,定时50ms
(3) OnTimer函数里添加下面代码:
    if (nIDEvent==1)
{
        DrawPicToHDC(); //定时器溢出时调用显示函数
}
(4)增加DrawPicToHDC函数,代码如下(XXDlg.h也要添加,这就不说了)
   HImage Image;
     Image = m_pFG->GrabImage();//捕获一祯图像
   Image.Display(*m_pHWinFG);//在m_pHWinFG窗口显示

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值