メニューにビットマップも表示させたいのですが

[戻る]
ナオーバ 2002/06/05(水) 16:23:08
はじめまして、VC勉強中のナオーバです。

メニューにビットマップも表示させたいのですが、

CMainFrame::OnCreateの最後に

m_Menubmp.LoadBitmap(IDB_MENU_BMP);
this->GetMenu()->SetMenuItemBitmaps( IDM_TREEDLG, MF_BYCOMMAND, &m_Menubmp, 
&m_Menubmp );
DrawMenuBar();

を書いたのですがうまく表示されません。

m_MenubmpはCMainFrameのメンバ
IDB_MENU_BMPは 11*11 のビットマップ


リソースエディタでIDM_TREEDLGの項目のチェック(K)にチェックをいれておいて、
ビルド実行すると、起動したときはチェックが消えているので、
途中までは成功しているようなのですが何故でしょう?

環境:WIN2000_SP2 + VC6_SP5 です。

何方かアドバイスお願いします。

sugar 2002/06/06(木) 11:39:32
CMenu::SetMenuItemBitmaps()は、レ点チェックの代わりに、
ビットマップで見た目を独自にカスタマイズする目的で用いられるものもようです。
Office等のメニューを実装したい場合は、
オーナードローを用いる必要があるのでは...?

うまく表示されない、とは、具体的にどうなってるのでしょう?
何にも表示されないとか?

ナオーバ 2002/06/06(木) 11:59:01
わかりずらい表現ですみませんでした。

>リソースエディタでIDM_TREEDLGの項目のチェック(K)にチェックをいれておいて、
>ビルド実行すると、起動したときはチェックが消えている

で具体的に書いたつもりなのですが、わかりますか?


ついでにすみませんが、オーナードローを用いたサンプルのあるURLとか
知りませんでしょうか?

いま探している最中なのです。

よろしくお願いします。

sugar 2002/06/06(木) 13:41:50
>リソースエディタでIDM_TREEDLGの項目のチェック(K)にチェックをいれておいて、
>ビルド実行すると、起動したときはチェックが消えている
>
リソースエディタでは確かにチェックがつきますが、あれは
「このメニュー項目はチェック属性です」と宣言しているだけで、
初期状態がチェックオンになるわけではありません。
でも、オフ状態用のビットマップが表示されません??

サンプルですが、私はここで研究しました。
つーか、まだ研究中ですが...

http://www.codeproject.com/menu/

ナオーバ 2002/06/06(木) 14:05:14
何度もすみません。

リソースエディタのプロパティの ? より開くヘルプより引用

チェック
True に設定すると、このメニューには最初にチェック マークが付きます。タイプはブール、
デフォルトの設定は False です。

試しに新規作成の所をチェックしてビルド実行すると付いています。

>でも、オフ状態用のビットマップが表示されません??
チェック、アンチェックのビットマップを同じものに設定しているので、
どっちかが表示されるはずなのですが。

>http://www.codeproject.com/menu/
早速見てみます。

みみみ 2002/06/06(木) 16:08:23
そもそもウィンドウのトップレベルのメニューにチェックは付かないと思います。
サブメニュには付きます。
GetMenu()->GetSubMenu(0)->SetMenuItemBitmaps(ID_FILE_NEW ,MF_BYCOMMAND, ...

あと「アイコン付きメニュー」で検索すればいくつかヒットするとおもいます。

ナオーバ 2002/06/06(木) 16:27:01
[[解決]]
sugarさん、みみみさん 大変申し訳ありません。

IDB_MENU_BMPのビットマップが 白 だった為に表示されていませんでした。
色を変えたら表示されました。

やっぱり動作が好きくないのでオーナードローで作成する方法を勉強します。


大変申し訳ありませんでした。

古いスレッドには追加発言できません。