CMouseManager クラス
ユーザーがそのビュー内をダブルクリックしたときに、ユーザーが別のコマンドを特定の CView オブジェクトに関連付けることができます。
構文
class CMouseManager : public CObject
メンバー
パブリック メソッド
名前 | 説明 |
---|---|
CMouseManager::AddView | Customization ダイアログ ボックスにCView オブジェクトを追加します。 [ カスタマイズ ] ダイアログ ボックスを使用すると、表示されている各ビューのコマンドにダブルクリックを関連付けることができます。 |
CMouseManager::GetViewDblClickCommand | 指定されたビュー内でユーザーがダブルクリックしたときに実行されるコマンドを返します。 |
CMouseManager::GetViewIconId | 指定されたビュー ID に関連付けられているアイコンを返します。 |
CMouseManager::GetViewIdByName | 指定されたビュー名に関連付けられているビュー ID を返します。 |
CMouseManager::GetViewNames | 追加されたすべてのビュー名の一覧を取得します。 |
CMouseManager::LoadState | Windows レジストリから CMouseManager 状態を読み込みます。 |
CMouseManager::SaveState | CMouseManager 状態を Windows レジストリに書き込みます。 |
CMouseManager::SetCommandForDblClk | 指定されたコマンドと指定されたビューを関連付けます。 |
解説
CMouseManager
クラスは、CView
オブジェクトのコレクションを保持します。 各ビューは、名前と ID によって識別されます。 これらのビューは、 Customization ダイアログ ボックスに表示されます。 ユーザーは、 Customization ダイアログ ボックスを使用して、任意のビューに関連付けられているコマンドを変更できます。 関連付けられたコマンドは、ユーザーがそのビューをダブルクリックしたときに実行されます。 コーディングの観点からこれをサポートするには、WM_LBUTTONDBLCLK メッセージを処理し、そのCView
オブジェクトのコードで CWinAppEx::OnViewDoubleClick 関数を呼び出す必要があります。
CMouseManager
オブジェクトは手動で作成しないでください。 これは、アプリケーションのフレームワークによって作成されます。 また、ユーザーがアプリケーションを終了すると、自動的に破棄されます。 アプリケーションのマウス マネージャーへのポインターを取得するには、 CWinAppEx::GetMouseManager を呼び出します。
継承階層
CMouseManager
要件
Header: afxmousemanager.h
CMouseManager::AddView
カスタム マウス動作をサポートするために、 CView オブジェクトを CMouseManager Class に登録します。
BOOL AddView(
int iViewId,
UINT uiViewNameResId,
UINT uiIconId = 0);
BOOL AddView(
int iId,
LPCTSTR lpszViewName,
UINT uiIconId = 0);
パラメーター
iViewId
[in]ビュー ID。
uiViewNameResId
[in]ビュー名を参照するリソース文字列 ID。
uiIconId
[in]ビュー アイコン ID。
iId
[in]ビュー ID。
lpszViewName
[in]ビュー名。
戻り値
正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。
解説
カスタム マウス動作をサポートするには、ビューを CMouseManager
オブジェクトに登録する必要があります。 CView
クラスから派生したオブジェクトは、マウス マネージャーに登録できます。 ビューに関連付けられている文字列とアイコンは、[Customize] ダイアログ ボックスの [Mouse] タブに表示されます。
プログラマは、iViewId、iIdなどのビュー ID を作成して維持する必要があります。
カスタム マウス動作を提供する方法の詳細については、「 Keyboard と Mouse Customizationを参照してください。
例
次の例では、CMouseManager
クラスの CWinAppEx::GetMouseManager
メソッドと AddView
メソッドを使用して、CMouseManager
オブジェクトへのポインターを取得する方法を示します。 このコード スニペットは、 State Collection サンプルの一部です。
GetMouseManager()->AddView(IDR_MAINFRAME, _T("My view"), IDR_MAINFRAME);
CMouseManager::GetViewDblClickCommand
指定されたビュー内でユーザーがダブルクリックしたときに実行されるコマンドを返します。
UINT GetViewDblClickCommand(int iId) const;
パラメーター
iId
[in] ビュー ID。
戻り値
ビューがコマンドに関連付けられている場合のコマンド識別子。それ以外の場合は 0。
CMouseManager::GetViewIconId
ビュー ID に関連付けられているアイコンを取得します。
UINT GetViewIconId(int iViewId) const;
パラメーター
iViewId
[in] ビュー ID。
戻り値
成功した場合のアイコン リソース識別子。それ以外の場合は 0。
解説
CMouseManager::AddView を使用してビューが最初に登録されていない場合、このメソッドは失敗します。
CMouseManager::GetViewIdByName
ビュー名に関連付けられているビュー ID を取得します。
int GetViewIdByName(LPCTSTR lpszName) const;
パラメーター
lpszName
[in]ビュー名。
戻り値
成功した場合のビュー ID。それ以外の場合は 0。
解説
このメソッドは、 CMouseManager::AddView を使用して登録されたビューを検索します。
CMouseManager::GetViewNames
登録されているすべてのビュー名の一覧を取得します。
void GetViewNames(CStringList& listOfNames) const;
パラメーター
listOfNames
[out] CStringList
オブジェクトへの参照。
解説
このメソッドは、パラメーター listOfNames
に、 CMouseManager::AddView を使用して登録されたすべてのビューの名前を入力します。
CMouseManager::LoadState
レジストリから CMouseManager クラス の状態を読み込みます。
BOOL LoadState(LPCTSTR lpszProfileName = NULL);
パラメーター
lpszProfileName
[in]レジストリ キーのパス。
戻り値
正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。
解説
レジストリから読み込まれる状態情報には、登録済みのビュー、ビュー識別子、および関連するコマンドが含まれます。 パラメーター lpszProfileName が NULL の場合、この関数は、CWinAppEx クラスによって制御される既定のレジストリの場所からCMouseManager
データを読み込みます。
ほとんどの場合、この関数を直接呼び出す必要はありません。 これは、ワークスペース初期化プロセスの一部として呼び出されます。 ワークスペースの初期化プロセスの詳細については、「 CWinAppEx::LoadStateを参照してください。
CMouseManager::SaveState
CMouseManager クラスの状態をレジストリに書き込みます。
BOOL SaveState(LPCTSTR lpszProfileName = NULL);
パラメーター
lpszProfileName
[in]レジストリ キーのパス。
戻り値
正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。
解説
レジストリに書き込まれる状態情報には、登録されているすべてのビュー、ビュー識別子、および関連するコマンドが含まれます。 パラメーター lpszProfileName が NULL の場合、この関数は、CWinAppEx クラスによって制御される既定のレジストリの場所にCMouseManager
データを書き込みます。
ほとんどの場合、この関数を直接呼び出す必要はありません。 これは、ワークスペースのシリアル化プロセスの一部として呼び出されます。 ワークスペースのシリアル化プロセスの詳細については、「 CWinAppEx::SaveStateを参照してください。
CMouseManager::SetCommandForDblClk
カスタム コマンドを、マウス マネージャーに最初に登録されたビューに関連付けます。
void SetCommandForDblClk(
int iViewId,
UINT uiCmd);
パラメーター
iViewId
[in]ビュー識別子。
uiCmd
[in]コマンド識別子。
解説
カスタム コマンドをビューに関連付けるには、最初に CMouseManager::AddView を使用してビューを登録する必要があります。 AddView
メソッドには、入力パラメーターとしてビュー識別子が必要です。 ビューを登録したら、AddView
に指定したのと同じビュー識別子の入力パラメーターを使用してCMouseManager::SetCommandForDblClk
を呼び出すことができます。 その後、ユーザーが登録済みビューでマウスをダブルクリックすると、アプリケーションは uiCmd. で示されるコマンドを実行します。カスタム マウスの動作をサポートするには、マウス マネージャーに登録されているビューをカスタマイズする必要もあります。 カスタム マウス動作の詳細については、「キーボードおよびマウスのカスタマイズ」を参照してください。
uiCmdが 0 に設定されている場合、指定したビューはコマンドに関連付けされなくなります。