次の方法で共有


CMenu クラス

更新 : 2007 年 11 月

Windows の HMENU をカプセル化したものです。

class CMenu : public CObject

解説

このクラスには、メニューの作成、トラッキング、更新、および破棄を行うメンバ関数が用意されています。

まず、ローカル変数としてスタック フレーム上に CMenu オブジェクトを構築し、その後新しいメニューを操作する必要があれば CMenu のメンバ関数を呼び出します。次に、ウィンドウにメニューを設定するために、CWnd::SetMenu を呼び出し、すぐ続けて CMenu オブジェクトの Detach メンバ関数を呼び出します。CWnd::SetMenu メンバ関数は、新しいメニューをウィンドウのメニューに設定します。その結果、メニューの変更を反映するためにウィンドウが再描画されます。また、メニューの所有権もウィンドウに渡します。Detach の呼び出しは、CMenu オブジェクトから HMENU を切り離すので、ローカル変数である CMenu 変数がスコープ外となっても、CMenu オブジェクトのデストラクタは、既に所有していないメニューは破棄しません。メニュー自身は、ウィンドウが破棄されるときに、自動的に破棄されます。

メモリ上にあるテンプレートからメニューを作成するのに、LoadMenuIndirect メンバ関数が使えますが、LoadMenu メンバを呼び出してリソースからメニューを作成する方が簡単に保守できます。メニュー リソース自身もメニュー エディタを使って、作成および変更できます。

必要条件

ヘッダー : afxwin.h

参照

処理手順

CTRLTEST サンプル : カスタム コントロールの実装

DYNAMENU サンプル : メニューの動的更新

参照

CObject クラス

階層図

CObject クラス

その他の技術情報

CMenu のメンバ