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 フィールドで使用するファイル フィルター指定します。 |
解説
アプリケーションにユーザー ツールを組み込むには、次の操作を行う必要があります。
ユーザー ツール メニュー エントリのメニュー項目と関連するコマンド ID を予約します。
アプリケーションでユーザーが定義できる各ユーザー ツールの順次コマンド ID を予約します。
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"));
}
継承階層
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::EnableUserTools の uArgMenuID パラメーターは、リソースの 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::EnableUserTools の uInitDirMenuID パラメーターで指定されます。
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]フィルターを指定します。