« Google Desktop で Becky のメールを | メイン | cmd.exe で tab補完 »

2007年08月03日

eVC++4.0 で WM5/6式 Menu を使いたい場合 [ カテゴリ : memo - W-ZERO3[es] ]
[ カテゴリ : ★Windows ]

そもそも、CE系では WNDCLASSの MENUNAME は NULLじゃないといけないらしい。
MAKEINTRESOURCE(ID) とかやると Register でコケやがる。

で、どうすればいいのかというと、
http://www.wince.ne.jp/review/kappy/p6.htm
http://www.wince.ne.jp/review/kappy/p7.htm
http://www.wince.ne.jp/review/kappy/p8.htm

リソースはメニュー項目2つのメニューバーにしておけば、
1つ目が左、2つ目が右のメニューになる。

空プロジェクトからリソース付け足すと、
afxres.h を include するリソースが出来上がるので、
newres.h を Hello World あたりからつれてきて、include 手書きでなおす。

rcファイル更新されるたびにincludeするヘッダ変わってしまうのだが、
どういうことなのか。たぶん project の設定かなんかで決まってるのだろう。
面倒なら Hello World プロジェクト作ってから書き換えればよいんじゃないかな。

コードは
初期化:Hello, world の SHCreateMenuBar の呼び方をマネする。(WM_CREATEでやればいい)
終了:WM_DESTROYの中で CommandBar_Destroy(hwndCB); すればよい。

hwndCB は SHCreateMenuBar後の mbi.hwndMB (mbiはSHMENUBARINFO構造体)

投稿者 JK : 2007年08月03日 10:02

トラックバック

このエントリーのトラックバックURL:
http://om.pizzica.to/mt-tb.cgi/80