BCB中图片和视频文件关联进度条的导出功能实现

(一)导出图片功能

    BCB中导出图片的功能比较简单,可以先把图片显示在一个Image控件上然后再导出,在上一篇中讲述了怎么通过OPENCV将图片显示在Image控件上,所以这里就在已经显示的基础上导出图片了。添加一个Image控件(imgShowPic),一个TSaveDialiog控件(dlgSavePic)。以下是实现代码:

      dlgSavePic->FileName =  "Text.bmp"  ;    // 这里设置保存对话框的文件保存名,可以不设置。

       if (dlgSavePic->Execute())                          // 打开保存文件夹
        {
            imgShowPic->Picture->SaveToFile(dlgSavePic->FileName);    // 利用Image控件的函数来保存。
        }

(二)导出视频功能

    这里的导出功能其实是个另存为的功能,也就是文件拷贝。只不过不是调用简单的CopyFileto,而是调用系统的API来实现的,关联进度条。

    以下就是实现代码:  

        HWND m_hWnd=Form1->Handle;        //当前 窗口的句柄
        char strTitle[]="File copying";       
        SHFILEOPSTRUCT FileOp;                    // 这是最主要文件结构
        ZeroMemory(&FileOp, sizeof(FileOp));
        FileOp.hwnd=m_hWnd;
        FileOp.wFunc=FO_COPY;                      // 选择拷贝功能                           
        //执行文件拷贝
        FileOp.fFlags=FOF_ALLOWUNDO ;   
        FileOp.hNameMappings=NULL;
        FileOp.lpszProgressTitle=strTitle;

        String sF, desc;
        sF=源文件路径+'\0';                                    // 这是是最需要注意的地方,加一个后缀‘\0’才能正常使用,不然会报错
        FileOp.pFrom=sF.c_str();

        desc=目标路径+'\0';                                   // 同上,不加会报“无法复制”的错误
        FileOp.pTo=desc.c_str();
        int iResult=SHFileOperation(&FileOp);

     

   

猜你喜欢

转载自blog.csdn.net/zh516846937/article/details/7008467