テキストの隣に画像を付ける方法が、実はいくつも有り、困っています。。。
正しい方法を模索しています。
主にWindows 7でテスト中。
ーーー
次図は、InsertMenuとSetMenuItemBitmapsを使った例です。あげとさげを追加しました。
お馴染みのDropboxやTortoise系を並べる事で、どのような塩梅か、比べています。
表示した直後は普通ですが、一度でもハイライトすると、背景色が白くなります。これはマズい。
ーーー
次図は、IContextMenu3+MF_OWNERDRAW+WM_DRAWITEMで対応した例です。
一応目的は果たしているように思えますが、、、どうも周囲とのバランスが取られていません。
ーーー
次図は、InsertMenuItem+MIIM_BITMAPで行った例です。hbmpItemには、ビットマップハンドルを渡しています。
最初と同じ動作のようです。
ーーー
次図は、HBMMENU_SYSTEMを用いた例です。hbmpItem = HBMMENU_SYSTEM
しかし、如何様に頑張ってみても、図のような、ウィンドウのアイコンしか出てきません。。。
ーーー
次図は、HBMMENU_CALLBACK+WM_DRAWITEM+WM_MEASUREITEMを用いた例です。hbmpItem = HBMMENU_CALLBACK
意図したような表示になり、一応成功していますが、メニューデザインがXP時代の物に退化してしまっています。
ーーー
次図は、先のInsertMenuItem+MIIM_BITMAPで行った例です。hbmpItemには、32bppのビットマップハンドルを渡しています。
どうもこれが正解のようです。TortoiseSvnのソースコードを覗いたら、そのような実装になっていました。
0 件のコメント:
コメントを投稿