MFC 添加文件路径 遍历文件

.添加MFC选择文件路径,使用MessageBox显示信息。

void CMyCalLawsDlg::OnBnClickedAddfolder()
{

    wchar_t* p;
    wchar_t szPath[MAX_PATH];    //存放选择的目录路径 
    p = szPath;

    CString str;
    CString str2;
    CString FileName;
    ZeroMemory(szPath, sizeof(szPath));  
    BROWSEINFO bi;      //windows API
    bi.hwndOwner = m_hWnd;      
    bi.pidlRoot = NULL;      
    bi.pszDisplayName = (LPSTR)szPath;      
    bi.lpszTitle = (LPSTR)"请选择需要打包的目录:";      
    bi.ulFlags = 0;      
    bi.lpfn = NULL;      
    bi.lParam = 0;      
    bi.iImage = 0;      //弹出选择目录对话框    

    LPITEMIDLIST lp = SHBrowseForFolder(&bi);  
    if(lp && SHGetPathFromIDList(lp, (LPSTR)szPath))      
    {        
        //str.Format("选择的目录为 %s", (const wchar_t *)szPath); //不能将参数 1 从“const char [16]”转换为“const wchar_t *”
        str.Format("选择的目录为 %s", p); //在你的项目属性里面把编码方式改为"使用多字节字符集"
        AfxMessageBox(str);
    }    
    else
    {
        str2.Format("无效的目录,请重新选择%d", 2);
        AfxMessageBox(str2);
        //AfxMessageBox("无效的目录,请重新选择",NULL,NULL);//error C2665: “AfxMessageBox”: 2 个重载中没有一个可以转换所有参数类型 0换为NULL
    }

    FileFolderName = str;
    CFile myFile;

    //载入图像!!!
    CString FileLastName;
    FileFolderName ="/res/SignSample/";
    FileLastName.Format("%s正样本(%d).bmp",FileFolderName, 1); //
    IplImage* LoadImage;
    LoadImage= cvLoadImage(FileLastName, 1);//经测试,未能载入!!!
    cvShowImage("Test",LoadImage);

    IplImage* ShowImage =MyResizeImage(LoadImage);
    MyShowImage(ShowImage,IDC_SHOWPIC);
}

//.添加MFC选择文件路径,使用Boost方法或许更好些,可以移植!


原文地址:https://www.cnblogs.com/wishchin/p/9200437.html