zoukankan      html  css  js  c++  java
  • MFC/HALCON混合编程系列三_CFielDialog打开文件对话框

    目的:在系列二的基础上,添加从文件中打开一幅图像的按钮。点击该按钮可以选择从文件或者当前目录下打开一幅图像。
     
    按钮的事件响应函数如下:
        
    void CHalconMFCDlg::OnBnClickedReadimage()
    {
        // TODO: Add your control notification handler code here
        // HDevelop default window handle 
        char ReadImageModel = 0;
        if (1 == ReadImageModel)
        {
            open_framegrabber("File"110000"default"-1"default"-1"default"
                 """default"-1-1&AcqHandle);
            grab_image(&Image, AcqHandle);
            get_image_pointer1(Image, &Pointer, &Type, &Width, &Height);
            set_window_attr("background_color","black");
            set_part(WindowHandle,0,0,Height-1,Width-1);
            disp_obj(Image, WindowHandle);    
        }
        else
        {
            CFileDialog dlg(TRUE, NULL,NULL, OFN_HIDEREADONLY,_T("JPEG|*.jpg|All files|*||"));//OFN_ALLOWMULTISELECT打开多文档选项。
            if (dlg.DoModal()==IDOK) //如果返回为确定,获得选择的文件名
            {
                //获取文件路径,读取图像。
                CString pathname=dlg.GetPathName( ); //
                char* Filename = pathname.GetBuffer(pathname.GetLength()+1); 
                read_image(&Image,Filename);
                get_image_pointer1(Image, &Pointer, &Type, &Width, &Height);
                
                set_part(WindowHandle,0,0,Height-1,Width-1);
                disp_obj(Image, WindowHandle);
            }
        }
    }
     
        问题一:通过dlg.GetPathName( )获得的文件路径是CString类型,而Halcon中的read_image需要的类型为HTuple,而这两种数据结构之间似乎不能进行类型转换。
        解决办法:由于对read_image不熟悉,不知道它可以使用char *类型的传入参数。因此只要把CString转换为char*类型作为传入参数。
     
        问题二,由dlg.GetPathName( )读取的路径类似下列 "C: est.jpg",而Halcon需要的路径却是类似"C:/test.jpg"。如果使用的话,还需要进行一次转换。
        解决办法:将CString类型装换为char*类型后,似乎没有这个问题了。
     
    参考资料:
     
  • 相关阅读:
    开源代码分析工具 good
    Qt5---ftp上传功能(使用组合的办法实现功能,QNetworkAccessManager自动管理分片上传,用QLoggingCategory屏蔽SSL警告)
    QT---基于WinPcap的局域网络管理工具(主机扫描、包过滤、ARP攻击、端口扫描)
    unity资源
    MVC5 EF6 Bootstrap3 HtmlHelper
    轻量级IOC框架Guice
    CloudNotes:一个云端个人笔记系统
    WeChatAPI 开源系统架构详解
    基础查询扩展
    ASP.NET 5 Hello World
  • 原文地址:https://www.cnblogs.com/HappyEDay/p/7661207.html
Copyright © 2011-2022 走看看