zoukankan      html  css  js  c++  java
  • 选择文件弹框置顶

    //打开文件夹对话框的回调函数
    int CALLBACK OpenFolderProc(HWND hwnd, UINT uMsg, LPARAM lParam, LPARAM lpData)
    {
    if (uMsg == BFFM_INITIALIZED)
    {
    //输出选择的文件夹
    SendMessage(hwnd, BFFM_SETSELECTION, TRUE, lpData);
    ::SetWindowPos(hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE);
    }
    return 0;
    }

    void CFileRenameDlg::OnBnClickedBtOpenfoldpath()
    {
    // TODO: 在此添加控件通知处理程序代码
    HMODULE module = GetModuleHandle(0);
    TCHAR pFileName[MAX_PATH];
    GetModuleFileNameW(module, pFileName, MAX_PATH);
    std::string workPath = CT2A(pFileName);
    size_t position = workPath.find_last_of("\");//find last
    memset(pFileName, 0x00, strlen(CT2A(pFileName)));
    memcpy(pFileName, workPath.c_str(), position);

    TCHAR szFolderPath[MAX_PATH] = { 0 };
    BROWSEINFO sInfo;
    ::ZeroMemory(&sInfo, sizeof(BROWSEINFO));
    sInfo.pidlRoot = 0;
    sInfo.lpszTitle = _T("请选择文件夹路径:");
    sInfo.ulFlags = BIF_DONTGOBELOWDOMAIN | BIF_RETURNONLYFSDIRS | BIF_NEWDIALOGSTYLE | BIF_EDITBOX;
    //sInfo.lpfn = NULL;
    sInfo.lParam = (LPARAM)(TCHAR*)pFileName;
    sInfo.lpfn = OpenFolderProc;

    // 显示文件夹选择对话框
    LPITEMIDLIST lpidlBrowse = ::SHBrowseForFolder(&sInfo);
    if (lpidlBrowse != NULL)
    {
    // 取得文件夹名
    if (::SHGetPathFromIDList(lpidlBrowse, szFolderPath))
    {
    //strFolderPath = CT2A(szFolderPath);
    }
    }
    if (lpidlBrowse != NULL)
    {
    ::CoTaskMemFree(lpidlBrowse);
    }

    m_editFoldPath.SetWindowText(szFolderPath);

    m_List.DeleteAllItems();
    getFileNames();
    }

  • 相关阅读:
    笛卡尔树学习笔记
    图论基础(自认为很全)
    我的博客在这里
    C++学习资料
    test
    个人介绍
    CF1153F Serval and Bonus Problem
    【ZJOI2020】抽卡
    【LOJ】小 Q 的序列
    我的个人博客:https://xyix.github.io
  • 原文地址:https://www.cnblogs.com/Pond-ZZC/p/13038812.html
Copyright © 2011-2022 走看看