MFC应用代码
+ -

MFC弹出浏览对话框

2021-09-07 22 0
    CString strTemp;
    CString str;
    BROWSEINFO bi;
    char Buffer[MAX_PATH];
    bi.hwndOwner = NULL;
    bi.pidlRoot = NULL;
    bi.pszDisplayName = Buffer;
    bi.lpszTitle = "数据存储路径";
    bi.ulFlags = 0;
    bi.lpfn = NULL;
    LPITEMIDLIST pIDList = SHBrowseForFolder(&bi);
    if(pIDList)
    {
        SHGetPathFromIDList(pIDList, Buffer);
        strTemp.Format("%s\\",Buffer); 
        CTime t = CTime::GetCurrentTime();
        str.Format("%d-%d-%d %d_%d_%d",t.GetYear(),t.GetMonth(),t.GetDay(),t.GetHour(),t.GetMinute(),t.GetSecond());
        str = strTemp + str;
        CreateDirectory(str,NULL);
        SetCurrentDirectory(str);
    }

释放内存:

CString BrowseFolder(HWND hWnd,LPCTSTR lpTitle)
{
    //调用SHBrowseForFolder取得目录(文件夹)名称。hWnd:父窗口句柄;lpTitle:窗口标题
    char szPath[MAX_PATH]={0};
    BROWSEINFO m_bi;
    m_bi.ulFlags = BIF_RETURNONLYFSDIRS|BIF_STATUSTEXT;
    m_bi.hwndOwner = hWnd;
    m_bi.pidlRoot = NULL;
    m_bi.lpszTitle = lpTitle;
    m_bi.lpfn = NULL;
    m_bi.lParam = NULL;
    m_bi.pszDisplayName = szPath;

    LPITEMIDLIST pidl = SHBrowseForFolder(&m_bi);
    if(pidl)
    {
        if(!SHGetPathFromIDList(pidl,szPath))szPath[0]=0;
        IMalloc * pMalloc = NULL;
        if(SUCCEEDED(SHGetMalloc(&pMalloc)))        //取得IMalloc分配器接口
        {
            pMalloc->Free(pidl);                        //释放内存
            pMalloc->Release();                        //释放接口
        }
    }
    return szPath;
}

0 篇笔记 写笔记

CFileDialog对话框的打开与存储
CFileDialog对话框的打开与存储功能CFileDialog对话框的文件扩展名过滤芯CFileDialog dlg(TRUE,NULL,NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, "dat文件 (*.dat)|*.dat......
MFC弹出浏览对话框
CString strTemp; CString str; BROWSEINFO bi; char Buffer[MAX_PATH]; bi.hwndOwner = NULL; bi.pidlRoot = NULL; bi.pszDisplay......
COM 使用OleLoadPicture加载在MFC对话框中显示JPG图像
在C盘放一张名为aa.jpg,使用MFC运行程序,点击按钮1在对话框中显示JPG图像源代码如下:void CTTDlg::OnBnClickedButton1(){ CDC* pDC = GetDC(); CoInitialize(NULL); //COM 初始化 ......
MFC对话框响应拖文件WM_DROPFILES
首先初始化启用DragAcceptFiles DragAcceptFiles(TRUE);然后在添加类向导中增加消息:WM_DROPFILESvoid CVCMAppDlg::OnDropFiles(HDROP hDropInfo){ CDialogEx::OnDropFile......
Duilib模式对话框DoModal实现
其原理就是通过禁用该窗口的拥有者,便能该窗口。执行完成后,在该DoModal函数中建立消息循环(因为主消息循环已经卡死)。UINT CWindowWnd::ShowModal(){ ASSERT(::IsWindow(m_hWnd)); UINT nRet = 0; HW......
作者信息
我爱内核
Windows驱动开发,网站开发
好好学习,天天向上。
取消
感谢您的支持,我会继续努力的!
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

您的支持,是我们前进的动力!