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 クラス) で使用するファイル フィルターを指定します。 |
解説
アプリケーションにユーザー ツールを組み込むには、次の操作を行う必要があります。
ユーザー ツール メニュー エントリのメニュー項目と関連するコマンド 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
必要条件
ヘッダー: 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::EnableUserTools の uArgMenuID パラメーターは、リソースの 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]フィルターを指定します。
関連項目
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示