次の方法で共有


CUserToolsManager クラス

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

構文

class CUserToolsManager : public CObject

メンバー

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

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

パブリック メソッド

名前 説明
CUserToolsManager::CreateNewTool 新しいユーザー ツールを作成します。
CUserToolsManager::FindTool 指定したコマンド ID に関連付けられている CMFCUserTool オブジェクトへのポインターを返します。
CUserToolsManager::GetArgumentsMenuID Customize ダイアログ ボックスの Tools タブの Arguments メニューに関連付けられているリソース ID を返します。
CUserToolsManager::GetDefExt Customize ダイアログ ボックスの Tools タブの Command フィールドで、File Open ダイアログ ボックス (CFileDialog) が使用する既定の拡張子返します。
CUserToolsManager::GetFilter Customize] ダイアログ ボックスの [Tools タブの Command フィールドで File Open ダイアログ ボックス ( CFileDialog クラス) が使用するファイル フィルター返します。
CUserToolsManager::GetInitialDirMenuID Customize ダイアログ ボックスの Tools タブの Initial ディレクトリ メニューに関連付けられているリソース 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 Customize ダイアログ ボックスの Tools タブの Command フィールドで、File Open ダイアログ ボックス (CFileDialog クラス) が使用する既定の拡張子を指定します。
CUserToolsManager::SetFilter [ファイルを開く] ダイアログ ボックス (CFileDialog クラス) が [Customize] ダイアログ ボックスの [Tools タブの Command フィールドで使用するファイル フィルター指定します。

解説

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

  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

要件

Header: 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 Class の派生型を使用できます。

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派生オブジェクトへのポインター。それ以外の場合は NULL。

解説

FindTool成功すると、返される型は、pToolRTC パラメーターの型と同じCWinAppEx::EnableUserTools

CUserToolsManager::GetArgumentsMenuID

Customize ダイアログ ボックスの Tools タブの Arguments メニューに関連付けられているリソース ID を返します。

UINT GetArgumentsMenuID() const;

戻り値

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

解説

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

CUserToolsManager::GetDefExt

Customize ダイアログ ボックスの Tools タブの Command フィールドで、File Open ダイアログ ボックス (CFileDialog) が使用する既定の拡張子返します。

const CString& GetDefExt() const;

戻り値

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

CUserToolsManager::GetFilter

Customize] ダイアログ ボックスの [Tools タブの Command フィールドで File Open ダイアログ ボックス ( CFileDialog クラス) が使用するファイル フィルター返します。

const CString& GetFilter() const;

戻り値

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

CUserToolsManager::GetInitialDirMenuID

Customize ダイアログ ボックスの Tools タブの Initial ディレクトリ メニューに関連付けられているリソース ID を返します。

UINT GetInitialDirMenuID() const;

戻り値

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

解説

返される ID は、CWinAppEx::EnableUserToolsuInitDirMenuID パラメーターで指定されます。

CUserToolsManager::GetMaxTools

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

int GetMaxTools() const;

戻り値

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

解説

アプリケーションで割り当てることができるツールの最大数を取得するには、このメソッドを呼び出します。 この数値は、uiCmdFirst から CWinAppEx::EnableUserTools に渡す 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

Customize ダイアログ ボックスの Tools タブの Command フィールドで、File Open ダイアログ ボックス (CFileDialog クラス) が使用する既定の拡張子を指定します。

void SetDefExt(const CString& strDefExt);

パラメーター

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

解説

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

CUserToolsManager::SetFilter

[ファイルを開く] ダイアログ ボックス (CFileDialog クラス) が [Customize] ダイアログ ボックスの [Tools タブの Command フィールドで使用するファイル フィルター指定します。

void SetFilter(const CString& strFilter);

パラメーター

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

関連項目

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