vs中picture控件与halcon关联

1、在xxxxxDlg.h头文件中找到DECLARE_MESSAGE_MAP(),在此后面定义三个成员变量

public:
	Hobject m_Image;		//图像
	HTuple m_hWindowHandle;	//显示图形窗口句柄
	Hobject m_objDisp;		//用于显示图形的对象

2、在xxxxxDlg的初始化函数OnInitDialog()后面添加如下

//picture控件初始化*****************************************************
	CRect	tmpRect;
	//获取picture控件的矩形区域,IDC_VIEW1是picture控件的ID号
	GetDlgItem(IDC_VIEW1)->GetClientRect(&tmpRect);
	//把picture控件和halcon关联,返回显示图形的窗口句柄
	//获取的picture控件的窗口句柄后,要强制转化为Hlong型数据
	open_window(0,0,tmpRect.Width(),tmpRect.Height(),(Hlong)(GetDlgItem(IDC_VIEW1)->GetSafeHwnd()),"visible","",&m_hWindowHandle);
	set_draw(m_hWindowHandle,"margin");
	set_colored(m_hWindowHandle,12);
	set_line_width(m_hWindowHandle,2);
	//设置halcon内部处理的图像的宽度和高度
	set_system("tsp_width",3000);
	set_system("tsp_height",3000);
	//picture控件初始化结束*************************************************

下图是关联起来的形式:


3、button控件打开图片的代码

	//图像宽、高
	HTuple	Width,Height;

	//弹出打开图像文件的对话框
	CFileDialog	dlg(TRUE, NULL, NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,"*.bmp,*.jpg,*.jpeg|*.bmp;*.jpg;*.jpeg||"); 

	//加载文件成功,则显示文件
	if (dlg.DoModal()==IDOK)
	{
		//复位显示图形变量
		if (m_objDisp.Id()!=H_EMPTY_REGION)
		{
			m_objDisp.Reset();
		}
		//读取图像,把图像存储在m_Image中
		read_image(&m_Image,dlg.GetPathName());

		//获取图像大小
		get_image_size(m_Image,&Width,&Height);

		//显示全图
		set_part(m_hWindowHandle,0,0,Height-1,Width-1);

		//vc中要显示任何图形,一定要调用disp_obj函数来实现
		disp_obj(m_Image,m_hWindowHandle);
	}

                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值