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 サンプル : カスタム コントロールの実装