Share via


CUserToolsManager クラス

アプリケーション内の CUserTool クラス オブジェクトのコレクションを保持します。 ユーザー ツールは、外部アプリケーションを実行するメニュー項目です。 CUserToolsManager オブジェクトは、ユーザーまたは開発者がアプリケーションに新しいユーザー ツールを追加できるようにします。 ユーザー ツールに関連するコマンドの実行をサポートし、Windows レジストリにユーザー ツールに関する情報を保存します。

構文

class CUserToolsManager : public CObject

メンバー

パブリック コンストラクター

名前 説明
CUserToolsManager::CUserToolsManager CUserToolsManager を構築します。

パブリック メソッド

名前 説明
CUserToolsManager::CreateNewTool 新しいユーザー ツールを作成します。
CUserToolsManager::FindTool 指定したコマンド ID に関連付けられているオブジェクトへの CMFCUserTool ポインターを返します。
CUserToolsManager::GetArgumentsMenuID [カスタマイズ] ダイアログ ボックスの [ツール] タブの [引数] メニューに関連付けられているリソース ID を返します。
CUserToolsManager::GetDefExt [カスタマイズ] ダイアログ ボックスの [ツール] タブの [コマンド] フィールド[ファイルを開く] ダイアログ ボックス (CFileDialog) で使用される既定の拡張子返します。
CUserToolsManager::GetFilter [カスタマイズ] ダイアログ ボックスの [ツール] タブの [コマンド] フィールド、[ファイルを開く] ダイアログ ボックス (CFileDialog クラス) で使用するファイル フィルター返します。
CUserToolsManager::GetInitialDirMenuID [カスタマイズ] ダイアログ ボックスの [ツール] タブの [初期ディレクトリ] メニューに関連付けられているリソース ID を返します。
CUserToolsManager::GetMaxTools アプリケーションで割り当てることができるユーザー ツールの最大数を返します。
CUserToolsManager::GetToolsEntryCmd ユーザー ツールのメニュー項目プレースホルダーのコマンド ID を返します。
CUserToolsManager::GetUserTools ユーザー ツールの一覧への参照を返します。
CUserToolsManager::InvokeTool 指定したコマンド ID を持つユーザー ツールに関連付けられているアプリケーションを実行します。
CUserToolsManager::IsUserToolCmd コマンド ID がユーザー ツールに関連付けられているかどうかを判断します。
CUserToolsManager::LoadState Windows レジストリからユーザー ツールに関する情報を読み込みます。
CUserToolsManager::MoveToolDown 指定したユーザー ツールをユーザー ツールの一覧から下に移動します。
CUserToolsManager::MoveToolUp 指定したユーザー ツールをユーザー ツールの一覧内で上に移動します。
CUserToolsManager::RemoveTool 指定したユーザー ツールをアプリケーションから削除します。
CUserToolsManager::SaveState ユーザー ツールに関する情報を Windows レジストリに格納します。
CUserToolsManager::SetDefExt [カスタマイズ] ダイアログ ボックスの [ツール] タブの [コマンド] フィールド、[ファイルを開く] ダイアログ ボックス (CFileDialog クラス) で使用する既定の拡張子指定します。
CUserToolsManager::SetFilter [カスタマイズ] ダイアログ ボックスの [ツール] タブの [コマンド] フィールド、[ファイルを開く] ダイアログ ボックス (CFileDialog クラス) で使用するファイル フィルター指定します。

解説

アプリケーションにユーザー ツールを組み込むには、次の操作を行う必要があります。

  1. ユーザー ツール メニュー エントリのメニュー項目と関連するコマンド ID を予約します。

  2. アプリケーションでユーザーが定義できる各ユーザー ツールの順次コマンド ID を予約します。

  3. CWinAppEx::EnableUserTools メソッドを呼び出し、メニュー コマンド ID、最初のユーザー ツール コマンド ID、最後のユーザー ツール コマンド ID のパラメーターを指定します。

アプリケーションごとにグローバル CUserToolsManager オブジェクトは 1 つだけ必要です。

ユーザー ツールの例については、VisualStudioDemo サンプル プロジェクトを参照してください。

次の例では、オブジェクトへの参照を取得する CUserToolsManager 方法と、新しいユーザー ツールを作成する方法を示します。 このコード スニペットは、Visual Studio デモ サンプルの一部です。

CUserToolsManager* pUserToolsManager = theApp.GetUserToolsManager();
if (pUserToolsManager != NULL && pUserToolsManager->GetUserTools().IsEmpty())
{
   // CUserToolsManager* pUserToolsManager
   CUserTool* pTool1 = pUserToolsManager->CreateNewTool();
   pTool1->m_strLabel = _T("&Notepad");
   pTool1->SetCommand(_T("notepad.exe"));

   CUserTool* pTool2 = pUserToolsManager->CreateNewTool();
   pTool2->m_strLabel = _T("Paint &Brush");
   pTool2->SetCommand(_T("mspaint.exe"));

   CUserTool* pTool3 = pUserToolsManager->CreateNewTool();
   pTool3->m_strLabel = _T("&Windows Explorer");
   pTool3->SetCommand(_T("explorer.exe"));

   CUserTool* pTool4 = pUserToolsManager->CreateNewTool();
   pTool4->m_strLabel = _T("Microsoft On-&Line");
   pTool4->SetCommand(_T("http://www.microsoft.com"));
}

継承階層

CObject

CUserToolsManager

必要条件

ヘッダー: afxusertoolsmanager.h

CUserToolsManager::CreateNewTool

新しいユーザー ツールを作成します。

CUserTool* CreateNewTool();

戻り値

新しく作成されたユーザー ツールへのポインター。ユーザー ツールの数が最大値を超えた場合は NULL。 返される型は、pToolRTC パラメーターとして渡されるCWinAppEx::EnableUserTools型と同じです。

解説

このメソッドは、CWinAppEx::EnableUserTools呼び出しで指定された範囲内の最初の使用可能なメニュー コマンド ID を検索し、この ID をユーザー ツールに割り当てます。

ツールの数が最大値に達した場合、メソッドは失敗します。 これは、範囲内のすべてのコマンド ID がユーザー ツールに割り当てられている場合に発生します。 CUserToolsManager::GetMaxTools を呼び出すことで、ツールの最大数を取得できます。 CUserToolsManager::GetUserTools メソッドを呼び出すと、ツール リストにアクセスできます。

CUserToolsManager::CUserToolsManager

CUserToolsManager を構築します。 各アプリケーションには、最大で 1 つのユーザー ツール マネージャーが必要です。

CUserToolsManager();

CUserToolsManager(
    const UINT uiCmdToolsDummy,
    const UINT uiCmdFirst,
    const UINT uiCmdLast,
    CRuntimeClass* pToolRTC=RUNTIME_CLASS(CUserTool),
    UINT uArgMenuID=0,
    UINT uInitDirMenuID=0);

パラメーター

uiCmdToolsDummy
[in]フレームワークがユーザー ツール メニューのコマンド ID のプレースホルダーとして使用する符号なし整数。

uiCmdFirst
[in]最初のユーザー ツール コマンドのコマンド ID。

uiCmdLast
[in]最後のユーザー ツール コマンドのコマンド ID。

pToolRTC
[in]CUserToolsManager::CreateNewTool によって作成されるクラス。 このクラスを使用すると、既定の実装ではなく CUserTool クラス派生型を使用できます。

uArgMenuID
[in]引数ポップアップ メニューのメニュー リソース ID。

uInitDirMenuID
[in]初期ディレクトリ ポップアップ メニューのメニュー リソース ID。

解説

このコンストラクターは呼び出さないでください。 代わりに、CWinAppEx::EnableUserTools を呼び出してユーザー ツールを有効にし、CWinAppEx::GetUserToolsManager を呼び出して CUserToolsManager、 . 詳細については、「ユーザー定義ツール」を参照してください

CUserToolsManager::FindTool

指定したコマンド ID に関連付けられている CUserTool Class オブジェクトへのポインターを返します。

CUserTool* FindTool(UINT uiCmdId) const;

パラメーター

uiCmdId
[in]メニュー コマンド識別子。

戻り値

成功した場合は CUserTool クラス または CUserTool-derived オブジェクトへのポインター。それ以外の場合は NULL。

解説

成功した場合FindTool、返される型は CWinAppEx::EnableUserTools への pToolRTC パラメーターの型と同じです。

CUserToolsManager::GetArgumentsMenuID

[カスタマイズ] ダイアログ ボックスの [ツール] タブの [引数] メニューに関連付けられているリソース ID を返します。

UINT GetArgumentsMenuID() const;

戻り値

メニュー リソースの識別子。

解説

CWinAppEx::EnableUserToolsuArgMenuID パラメーターは、リソースの ID を指定します。

CUserToolsManager::GetDefExt

[カスタマイズ] ダイアログ ボックスの [ツール] タブの [コマンド] フィールド[ファイルを開く] ダイアログ ボックス (CFileDialog) で使用される既定の拡張子返します。

const CString& GetDefExt() const;

戻り値

拡張機能を CString 含むオブジェクトへの参照。

CUserToolsManager::GetFilter

[カスタマイズ] ダイアログ ボックスの [ツール] タブの [コマンド] フィールド、[ファイルを開く] ダイアログ ボックス (CFileDialog クラス) で使用するファイル フィルター返します。

const CString& GetFilter() const;

戻り値

フィルターを CString 含むオブジェクトへの参照。

CUserToolsManager::GetInitialDirMenuID

[カスタマイズ] ダイアログ ボックスの [ツール] タブの [初期ディレクトリ] メニューに関連付けられているリソース ID を返します。

UINT GetInitialDirMenuID() const;

戻り値

メニュー リソース識別子。

解説

返される ID は、CWinAppEx::EnableUserTools の uInitDirMenuID パラメーターで指定されます

CUserToolsManager::GetMaxTools

アプリケーションで割り当てることができるユーザー ツールの最大数を返します。

int GetMaxTools() const;

戻り値

割り当てることができるユーザー ツールの最大数。

解説

アプリケーションで割り当てることができるツールの最大数を取得するには、このメソッドを呼び出します。 この数値は、cWinAppEx::EnableUserTools に渡す uiCmdFirst から uiCmdLast パラメーターまでの範囲の ID の数です

CUserToolsManager::GetToolsEntryCmd

ユーザー ツールのメニュー項目プレースホルダーのコマンド ID を返します。

UINT GetToolsEntryCmd() const;

戻り値

プレースホルダーのコマンド ID。

解説

ユーザー ツールを有効にするには、CWinAppEx::EnableUserTools を呼び出 します。 uiCmdToolsDummy パラメーターは、ツール エントリ コマンドのコマンド ID を指定します。 このメソッドは、ツール エントリ コマンド ID を返します。 その ID がメニューで使用されている場合は、メニューが表示されたときにユーザー ツールの一覧に置き換えられます。

CUserToolsManager::GetUserTools

ユーザー ツールの一覧への参照を返します。

const CObList& GetUserTools() const;

戻り値

ユーザー ツールの一覧を 含む CObList クラス オブジェクトへの const 参照。

解説

このメソッドを呼び出して、CUserToolsManager オブジェクトがメインを含むユーザー ツールの一覧を取得します。 各ユーザー ツールは、CUserTool クラスのオブジェクトまたはからCUserTool派生した型で表されます。 この型は、ユーザー ツールを有効にするために CWinAppEx::EnableUserTools を呼び出すときに pToolRTC パラメーターによって指定されます。

CUserToolsManager::InvokeTool

指定したコマンド ID を持つユーザー ツールに関連付けられているアプリケーションを実行します。

BOOL InvokeTool(UINT uiCmdId);

パラメーター

uiCmdId
[in]ユーザー ツールに関連付けられているメニュー コマンド ID。

戻り値

ユーザー ツールに関連付けられているコマンドが正常に実行された場合は 0 以外。それ以外の場合は 0。

解説

uiCmdId で 指定されたコマンド ID を持つユーザー ツールに関連付けられているアプリケーションを実行するには、このメソッドを呼び出します

CUserToolsManager::IsUserToolCmd

コマンド ID がユーザー ツールに関連付けられているかどうかを判断します。

BOOL IsUserToolCmd(UINT uiCmdId) const;

パラメーター

uiCmdId
[in]メニュー項目のコマンド ID。

戻り値

指定されたコマンド ID がユーザー ツールに関連付けられている場合は 0 以外。それ以外の場合は 0。

解説

このメソッドは、指定されたコマンド ID がコマンド ID の範囲内にあるかどうかをチェックします。 ユーザー ツールを有効にするには、CWinAppEx::EnableUserTools を呼び出すときに範囲を指定します。

CUserToolsManager::LoadState

Windows レジストリからユーザー ツールに関する情報を読み込みます。

BOOL LoadState(LPCTSTR lpszProfileName=NULL);

パラメーター

lpszProfileName
[in]Windows レジストリ キーのパス。

戻り値

状態が正常に読み込まれた場合は 0 以外。それ以外の場合は 0。

解説

このメソッドは、Windows レジストリからオブジェクトの CUserToolsManager 状態を読み込みます。

通常、このメソッドは直接呼び出しません。 CWinAppEx::LoadState は、ワークスペース初期化プロセスの一部として呼び出します。

CUserToolsManager::MoveToolDown

指定したユーザー ツールをユーザー ツールの一覧から下に移動します。

BOOL MoveToolDown(CUserTool* pTool);

パラメーター

pTool
[in]移動するユーザー ツールを指定します。

戻り値

ユーザー ツールが正常に下に移動された場合は 0 以外。それ以外の場合は 0。

解説

pTool が指定したツールが内部リストにない場合、またはツールがリストの最後にある場合、メソッドは失敗します。

CUserToolsManager::MoveToolUp

指定したユーザー ツールをユーザー ツールの一覧内で上に移動します。

BOOL MoveToolUp(CUserTool* pTool);

パラメーター

pTool
[in]移動するユーザー ツールを指定します。

戻り値

ユーザー ツールが正常に上に移動された場合は 0 以外。それ以外の場合は 0。

解説

pTool パラメーターで指定されたツールが内部リストにない場合、またはツールがリストの最初のツール項目である場合、メソッドは失敗します。

CUserToolsManager::RemoveTool

指定したユーザー ツールをアプリケーションから削除します。

BOOL RemoveTool(CUserTool* pTool);

パラメーター

pTool
[入力、出力]削除するユーザー ツールへのポインター。

戻り値

ツールが正常に削除された場合は TRUE。 それ以外の場合は FALSE。

解説

ツールが正常に削除された場合、このメソッドは pTool を削除します

CUserToolsManager::SaveState

ユーザー ツールに関する情報を Windows レジストリに格納します。

BOOL SaveState(LPCTSTR lpszProfileName=NULL);

パラメーター

lpszProfileName
[in]Windows レジストリ キーへのパス。

戻り値

状態が正常に保存された場合は 0 以外。それ以外の場合は 0。

解説

このメソッドは、オブジェクトの現在の状態を CUserToolsManager Windows レジストリに格納します。

通常、このメソッドを直接 呼び出す必要はありません。CWinAppEx::SaveState は、アプリケーションのワークスペースシリアル化プロセスの一部として自動的に呼び出します。

CUserToolsManager::SetDefExt

[カスタマイズ] ダイアログ ボックスの [ツール] タブの [コマンド] フィールド、[ファイルを開く] ダイアログ ボックス (CFileDialog クラス) で使用する既定の拡張子指定します。

void SetDefExt(const CString& strDefExt);

パラメーター

strDefExt
[in]既定のファイル名拡張子を含むテキスト文字列。

解説

このメソッドを呼び出して、[ファイルを開く] ダイアログ ボックスで既定のファイル名拡張子を指定します。この拡張子は、ユーザーがユーザー ツールに関連付けるアプリケーションを選択したときに表示されます。 既定値は "exe" です。

CUserToolsManager::SetFilter

[カスタマイズ] ダイアログ ボックスの [ツール] タブの [コマンド] フィールド、[ファイルを開く] ダイアログ ボックス (CFileDialog クラス) で使用するファイル フィルター指定します。

void SetFilter(const CString& strFilter);

パラメーター

strFilter
[in]フィルターを指定します。

関連項目

階層図
クラス
CWinAppEx クラス
CUserTool クラス