CMenu

メニュークラスCMenuを実装する・・・。

Menu.hに、

アプリケーションインスタンスハンドルm_hInstanceとメニューハンドルm_hMenuを用意・・・。
また、

コンストラクタはインスタンスハンドルを引数として渡すものを用意・・・。

Menu.cppで、

hInstanceを渡すコンストラクタでm_hInstanceにhInstanceをセット・・・。

呼び出すのはWindow.cppのOnCreateで、

CMenuオブジェクトを生成・・・。
引数には、lpCreateStructから取得したhInstanceを指定・・・。

m_pMenuはWindow.hに、

用意しているCMenuのポインタ・・・。

m_hMenuにはLoadMenuでIDR_MAINMENUをロードした時の戻り値を格納・・・。

SetMenuでm_hMenuをhwndにセット・・・。
ここはOnCreateなので、m_hWndにはウィンドウハンドルが入っていない・・・。
プロシージャから渡されたhwndをOnCreateにも渡すようにOnCreateを改造している・・・。

f:id:BG1:20150617122450p:plain

Item1-1をクリック・・・。

f:id:BG1:20150617122536p:plain

動作に変化は無い・・・。

https://github.com/bg1bgst333/Test/blob/master/winapi/CMenu/CMenu/src/CMenu/CMenu/WinMain.cpp
https://github.com/bg1bgst333/Test/blob/master/winapi/CMenu/CMenu/src/CMenu/CMenu/Application.h
https://github.com/bg1bgst333/Test/blob/master/winapi/CMenu/CMenu/src/CMenu/CMenu/Application.cpp
https://github.com/bg1bgst333/Test/blob/master/winapi/CMenu/CMenu/src/CMenu/CMenu/Window.h
https://github.com/bg1bgst333/Test/blob/master/winapi/CMenu/CMenu/src/CMenu/CMenu/Window.cpp
https://github.com/bg1bgst333/Test/blob/master/winapi/CMenu/CMenu/src/CMenu/CMenu/Menu.h
https://github.com/bg1bgst333/Test/blob/master/winapi/CMenu/CMenu/src/CMenu/CMenu/Menu.cpp
https://github.com/bg1bgst333/Test/blob/master/winapi/CMenu/CMenu/src/CMenu/CMenu/resource.h
https://github.com/bg1bgst333/Test/blob/master/winapi/CMenu/CMenu/src/CMenu/CMenu/CMenu.rc