zoukankan      html  css  js  c++  java
  • 浏览目录对话框

    1.头文件

    #pragma once 
    #ifndef __DIRDIALOG_H_HH 
    #define __DIRDIALOG_H_HH 
    
    #include <Shlobj.h>  
    
    class CDirDialog
    {
    protected:
        BROWSEINFO m_bi;
        char m_szDisplayName[MAX_PATH]; //显示名称 
        TCHAR m_szPath[MAX_PATH]; //选择的目录 
    
    public:
        //显示对话框 
        BOOL DoBrowse(HWND hwndOwner, LPTSTR pszDisplayName);
    
        LPCTSTR GetPath() { return m_szPath; };
    
        CDirDialog(void);
        ~CDirDialog(void);
    };
    
    #endif

    2.CPP文件

    #include "stdafx.h"  //这个.h里面是什么,为什么一定要include
    #include "DirDialog.h" 
    #include <tchar.h>
    CDirDialog::CDirDialog(void)
    {
        ::ZeroMemory((void*)&m_bi, sizeof(BROWSEINFO));
        memset(m_szDisplayName, 0, MAX_PATH);
        memset(m_szPath, 0, MAX_PATH);
        m_bi.hwndOwner = NULL;
        m_bi.pidlRoot = NULL;
        m_bi.lpszTitle = _T("请选择文件夹");
        m_bi.ulFlags = BIF_RETURNONLYFSDIRS;
        m_bi.lpfn = NULL;
        m_bi.lParam = NULL;
        m_bi.iImage = NULL;
    }
    
    BOOL CDirDialog::DoBrowse(HWND hwndOwner, LPTSTR pszTitle)
    {
        m_bi.hwndOwner = hwndOwner; //设置父窗口!!
        m_bi.lpszTitle = pszTitle;
        PIDLIST_ABSOLUTE pItem = ::SHBrowseForFolder(&m_bi);  //函数1
        if (pItem != NULL)
        {
            ::SHGetPathFromIDList(pItem, m_szPath);           //函数2
            return TRUE;
        }
    
        return FALSE;
    }
    
    CDirDialog::~CDirDialog(void)
    {
    }
  • 相关阅读:
    Js $.merge() 函数(合并两个数组内容到第一个数组)
    11.联结表---SQL
    函数作用域
    递归特性
    计算递归函数理解
    递归、问路函数
    全局变量用大写,局部变量用小写
    全局变量与局部变量
    函数形参和实参
    函数和过程
  • 原文地址:https://www.cnblogs.com/cteng-common/p/browserdirectory.html
Copyright © 2011-2022 走看看