CMFCShellListCtrl クラス
CMFCShellListCtrl
クラスは、Windows リスト コントロール機能を提供し、シェル項目の一覧を表示する機能を含めることで展開します。
構文
class CMFCShellListCtrl : public CMFCListCtrl
メンバー
パブリック メソッド
解説
CMFCShellListCtrl
クラスは、プログラムで Windows シェル項目を一覧表示できるようにすることでCMFCListCtrl クラスの機能を拡張します。 使用される表示形式は、エクスプローラー ウィンドウのリスト ビューと似ています。
CMFCShellTreeCtrl オブジェクトをCMFCShellListCtrl
オブジェクトに関連付けて、エクスプローラー ウィンドウ全体を作成できます。 その後、 CMFCShellTreeCtrl
で項目を選択すると、 CMFCShellListCtrl
オブジェクトに選択した項目の内容が一覧表示されます。
例
次の例では、 CMFCShellListCtrl
クラスのオブジェクトを作成する方法と、現在表示されているフォルダーの親フォルダーを表示する方法を示します。 このコード スニペットは、 Explorer サンプルの一部です。
CMFCShellListCtrl m_wndList;
CRect rectDummy(0, 0, 0, 0);
// The this pointer points to CExplorerView class which extends the CView class.
m_wndList.Create(WS_CHILD | WS_VISIBLE | LVS_REPORT, rectDummy, this, 1);
m_wndList.DisplayParentFolder();
継承階層
CMFCShellListCtrl
要件
Header: afxshelllistCtrl.h
CMFCShellListCtrl::D isplayFolder
指定されたフォルダーに含まれている項目の一覧を表示します。
virtual HRESULT DisplayFolder(LPCTSTR lpszPath);
virtual HRESULT DisplayFolder(LPAFX_SHELLITEMINFO lpItemInfo);
パラメーター
lpszPath
[in]フォルダーのパスを含む文字列。
lpItemInfo
[in]表示するフォルダーを記述する LPAFX_SHELLITEMINFO
構造体へのポインター。
戻り値
成功した場合はS_OK。それ以外の場合E_FAIL。
CMFCShellListCtrl::D isplayParentFolder
CMFCShellListCtrl オブジェクトを更新して、現在表示されているフォルダーの親フォルダーを表示します。
virtual HRESULT DisplayParentFolder();
戻り値
成功した場合はS_OK。それ以外の場合E_FAIL。
CMFCShellListCtrl::EnableShellContextMenu
ショートカット メニューを有効にします。
void EnableShellContextMenu(BOOL bEnable = TRUE);
パラメーター
bEnable
[in]フレームワークがショートカット メニューを有効にするかどうかを指定するブール値。
CMFCShellListCtrl::GetCurrentFolder
CMFCShellListCtrl オブジェクトで現在選択されているフォルダーのパスを取得します。
BOOL GetCurrentFolder(CString& strPath) const;
パラメーター
strPath
[out]メソッドがパスを書き込む文字列パラメーターへの参照。
戻り値
成功した場合は 0 以外。それ以外の場合は 0。
解説
CMFCShellListCtrl
でフォルダーが選択されていない場合、このメソッドは失敗します。
CMFCShellListCtrl::GetCurrentFolderName
CMFCShellListCtrl オブジェクトで現在選択されているフォルダーの名前を取得します。
BOOL GetCurrentFolderName(CString& strName) const;
パラメーター
strName
[out]メソッドが名前を書き込む文字列パラメーターへの参照。
戻り値
成功した場合は 0 以外。それ以外の場合は 0。
解説
CMFCShellListCtrl
でフォルダーが選択されていない場合、このメソッドは失敗します。
CMFCShellListCtrl::GetCurrentItemIdList
現在選択されている項目の PIDL を返します。
LPITEMIDLIST GetCurrentItemIdList() const;
戻り値
現在の項目の PIDL。
CMFCShellListCtrl::GetCurrentShellFolder
CMFCShellListCtrl オブジェクトで現在選択されている項目へのポインターを取得します。
const IShellFolder* GetCurrentShellFolder() const;
戻り値
選択したオブジェクトの IShellFolder Interface へのポインター。
解説
オブジェクトが現在選択されていない場合、このメソッドは NULL を返します。
CMFCShellListCtrl::GetItemPath
項目のパスを取得します。
BOOL GetItemPath(
CString& strPath,
int iItem) const;
パラメーター
strPath
[out]パスを受け取る文字列への参照。
iItem
[in]リスト アイテムのインデックス。
戻り値
成功した場合は TRUE。それ以外の場合は FALSE。
解説
iItem によって提供されるインデックスは、CMFCShellListCtrl クラス オブジェクトによって現在表示されている項目に基づいています。
CMFCShellListCtrl::GetItemTypes
CMFCShellListCtrl オブジェクトによって表示される項目の種類を返します。
SHCONTF GetItemTypes() const;
戻り値
SHCONTF CMFCShellListCtrl
にリストされている項目の種類を含む値。
解説
CMFCShellListCtrl
にリストされている項目の種類を設定するには、CMFCShellListCtrl::SetItemTypes を呼び出します。
CMFCShellListCtrl::IsDesktop
CMFCShellListCtrl オブジェクトに表示されるフォルダーがデスクトップ フォルダーかどうかを判断します。
BOOL IsDesktop() const;
戻り値
表示されるフォルダーがデスクトップ フォルダーの場合は TRUE。それ以外の場合は FALSE。
CMFCShellListCtrl::OnCompareItems
詳細については、Visual Studio のインストールの VC\atlmfc\src\mfc フォルダーにあるソース コードを参照してください。
virtual int OnCompareItems(
LPARAM lParam1,
LPARAM lParam2,
int iColumn);
パラメーター
[入力] lParam1
[入力] lParam2
[入力] iColumn
戻り値
解説
CMFCShellListCtrl::OnFormatFileDate
フレームワークは、オブジェクトに関連付けられている日付を文字列に変換する必要がある場合に、このメソッドを呼び出します。
virtual void OnFormatFileDate(
const CTime& tmFile,
CString& str);
パラメーター
tmFile
[in]ファイルに関連付けられている日付。
str
[out]書式設定されたファイルの日付を含む文字列。
解説
CMFCShellListCtrl クラスオブジェクトは、ファイルに関連付けられている日付を表示する場合、その日付を文字列形式に変換する必要があります。 CMFCShellListCtrl
では、このメソッドを使用してその変換を行います。 既定では、このメソッドは現在のロケールを使用して日付を文字列に書式設定します。
CMFCShellListCtrl::OnFormatFileSize
フレームワークは、オブジェクトのサイズを文字列に変換するときに、このメソッドを呼び出します。
virtual void OnFormatFileSize(
long lFileSize,
CString& str);
パラメーター
lFileSize
[in]フレームワークが表示するファイルのサイズ。
str
[out]書式設定されたファイル サイズを含む文字列。
解説
CMFCShellListCtrl クラスオブジェクトがファイルのサイズを表示する必要がある場合は、ファイル サイズを文字列形式に変換する必要があります。 CMFCShellListCtrl
では、このメソッドを使用してその変換を行います。 既定では、このメソッドはファイル サイズをバイトからキロバイトに変換し、現在のロケールを使用してサイズを文字列に書式設定します。
CMFCShellListCtrl::OnGetItemIcon
フレームワークはこのメソッドを呼び出して、シェル リスト 項目に関連付けられているアイコンを取得します。
virtual int OnGetItemIcon(
int iItem,
LPAFX_SHELLITEMINFO pItem);
パラメーター
iItem
[in]項目インデックス。
pItem
[in]項目を記述するLPAFX_SHELLITEMINFO パラメーター。
戻り値
成功した場合のアイコン イメージのインデックス。関数が失敗した場合は -1。
解説
アイコンイメージのインデックスは、システムイメージリストに基づいています。
既定では、このメソッドは pItem パラメーターに依存します。 iItem の値は、既定の実装では使用されません。 iItemを使用してカスタム動作を実装できます。
CMFCShellListCtrl::OnGetItemText
フレームワークは、シェル項目のテキストを取得する必要がある場合に、このメソッドを呼び出します。
virtual CString OnGetItemText(
int iItem,
int iColumn,
LPAFX_SHELLITEMINFO pItem);
パラメーター
iItem
[in]項目インデックス。
iColumn
[in]関心のある列。
pItem
[in]項目を記述するLPAFX_SHELLITEMINFO パラメーター。
戻り値
アイテムに関連付けられたテキストを含む CString
。
解説
CMFCShellListCtrl
オブジェクト内の各項目は、1 つ以上の列にテキストを含む場合があります。 フレームワークは、このメソッドを呼び出すときに、関心のある列を指定します。 この関数を手動で呼び出す場合は、目的の列も指定する必要があります。
既定では、このメソッドは pItem パラメーターに依存して、処理する項目を決定します。 iItem の値は、既定の実装では使用されません。
CMFCShellListCtrl::OnSetColumns
フレームワークは、列の名前を設定するときにこのメソッドを呼び出します。
virtual void OnSetColumns();
解説
既定では、フレームワークは、 CMFCShellListCtrl
オブジェクトに 4 つの列を作成します。 これらの列の名前は、 Name、 Size、 Type、および Modified です。 このメソッドをオーバーライドして、列の数とその名前をカスタマイズできます。
CMFCShellListCtrl::Refresh
CMFCShellListCtrl オブジェクトを更新して再描画します。
virtual HRESULT Refresh();
戻り値
S_OK
成功した場合。それ以外の場合はエラー値。
解説
CMFCShellListCtrl
オブジェクトによって表示される項目の一覧を更新するには、このメソッドを呼び出します。
CMFCShellListCtrl::SetItemTypes
CMFCShellListCtrl オブジェクトに表示される項目の種類を設定します。
void SetItemTypes(SHCONTF nTypes);
パラメーター
nTypes
[in] CMFCShellListCtrl
オブジェクトがサポートする項目の種類の一覧。
解説
項目の種類の一覧の詳細については、「 SHCONTFを参照してください。