halcon和mfc

VC++/MFC不VB,在MFC的窗口显示除BMP格式以外的例JPG格式的图片,很复杂,不简单过PICTURE CONTROL控件显示,当然可以使用GDI+,或者其他什么的方式。在机器视觉软件的用户界面往往需要在所获得的图像上绘制一些记号,这对于MFC的初学者而言,又需要大量的时间去学习、研究。通常我们用HALCON结合MFC开发机器视觉软件,是无法离开HALCON的,那么笔者想HALCON本身有没有什么显示图片、绘制图像的方法且这些方法以及效果看起来与自己用MFC写的软件、窗口融为一体呢,事实上的确是有的。

笔者在HALCON官方提供的PDF中找到了open_window这个方法,结合disp_obj方法能够很好显示图片和图像等,然后仅仅通过这两个方法,仅仅是在MFC的窗口上产生了一个新的窗口而已,看起来很不舒服。以下是完整的代码:

#define dialogfirstx 320
#define dialogfirsty 220
#define picturex 280
#define picturey 210

//...

Hlong lWWindowID,windowshandle;
Hobject Image;

//...

::set_window_attr("border_width",0);

lWWindowID = (Hlong)m_hWnd;

::set_check("~father");
::open_window(dialogfirstx,dialogfirsty,picturex,picturey,lWWindowID,"visible","",&windowshandle);
::set_check("father");
::disp_obj(Image,windowshandle);

//...
从上面的代码可知,实际上思路是这样的提取m_hWnd也就是我们用MFC写的主窗口,将他赋给lWWindowID,在open_window()时,将lWWindowID 作为我们要打开的窗口的父窗口,这样就OK了。可以看到这里多用了一个方法set_chech(),如果注销这个方法,程序将会出错,而如果将lWWindowID改成open_window()默认的“root”或是0,则虽然也能够显示图像和元素,但显示的效果如本文开始时所述,产生一个与MFC写的主体对话框分离的窗口用于显示。

disp_obj()不只可以显示图片,我们看到他显示的对象是Hobject,我们自己绘制的标记、图像的元素、图像处理后的区域、元素、效果均可以通过进行disp_obj()显示。于是很好的解决了本文开头的需求。
the 铁腕 dash早期资源 秦腔电影十五贯剧情 commons lang 2.6 黑魂3新手火焰剑 bluecard巡更棒说明书 三星s8的发布会看点 姚明退役 sata 600是什么意思 courreges会社游戏合集 外国人羡慕中国撤侨 白夜追凶乔森是谁 揖怎么读 古代两河流域文明 微星gl72 6qd 战祸邪神在线观看 海南奥博动漫 alinangdegushi skylark英文怎么读 burn the witches 青春舞会皇后百度云盘 竹子山水高清壁纸 晚清妃子照片 明星合成林志玲6p yoosee连接 黑帝的女人袁茵TXT 孔雀大卫城有几个 营养师的证有用吗 事业单位b类面试 学术年会 校内网网络课

Copyright 三路网 Some Rights Reserved

如反馈或投诉等情况联系:une35498#163.com