2011/05/27

【VC】リソースエディタで関連付けたメニュー取得は GetMenu で

 
ダイアログに関連付けたメニューのハンドル取得に苦戦してしまった。
 
リソースエディタ上でダイアログにメニューを関連付けた場合のハンドルは、
LoadMenu() ではなく GetMenu() で取得します。
 
dailog_getmenu
LoadMenu() は新規に読み込んでしまうので、ダイアログメニューに反映
させることが当然出来ません。
 
 
またよく間違えてしまうのですが、メニュー項目にチェックを入れたりするのは、CheckDlgButton() では無く CheckMenuItem() になりますね。
 
状態を取得するのは IsDlgButtonChecked() ではなく、GetMenuState() の
下位バイトで判定。
 
if( GetMenuState( hMenu, ID_HOGE, MF_BYCOMMAND ) & MFS_CHECKED ){
}
 
忘却の彼方に行ってたので、メニューの扱いにハマった。

0 件のコメント:

コメントを投稿