次の方法で共有


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 を呼び出します。

継承階層

CObject

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 に設定されている場合、指定したビューはコマンドに関連付けされなくなります。

関連項目

階層図
クラス
CWinAppEx クラス
キーボードとマウスのカスタマイズ