ディレクトリ指定のできるフォルダダイアログ [WTL]

(2004.03.25)
#pragma once
 
 
/////////////////////////////////////////////////////////////////////////////
// CFolderDialogEx
// ディレクトリ指定のできるフォルダダイアログ
 
class CFolderDialogEx : public CFolderDialogImpl<CFolderDialogEx>
{
public:
    LPITEMIDLIST m_pInitItemIDList;
    TCHAR m_szInitFolderPath[MAX_PATH];
 
    CFolderDialogEx(HWND hWndParent = NULL, LPCTSTR lpstrTitle = NULL, UINT uFlags = BIF_RETURNONLYFSDIRS)
        : CFolderDialogImpl<CFolderDialogEx>(hWndParent, lpstrTitle, uFlags)
    {
        m_bi.lpfn = BrowseCallbackProc;
        
        m_pInitItemIDList = NULL;
        m_szInitFolderPath[0] = NULL;
    }
 
    void SetInitFolderPIDL(LPITEMIDLIST pItemIDList)
    {
        m_pInitItemIDList = pItemIDList;
        m_szInitFolderPath[0] = NULL;            // クリア
    }
    void SetInitFolderPath(LPCTSTR lpFolderPath)
    {
        m_pInitItemIDList = NULL;                // クリア
        _tcscpy(m_szInitFolderPath, lpFolderPath);
    }
    // 基底クラスから自動的に呼び出される
    void OnInitialized()
    {
        if (m_pInitItemIDList != NULL)
        {
            this->SetSelection(m_pInitItemIDList);
        }
        if (m_szInitFolderPath[0] != NULL)
        {
            this->SetSelection(m_szInitFolderPath);
        }
    }
};
一覧に戻る
© 2003 WAC.com All Right Reserved.