0

TrackPopupMenu API を使用して、C++ コードからコンテキスト メニューを表示します。各メニュー項目には、サイズが 24x24 ピクセルのビットマップが含まれています。呼び出して追加:

MENUITEMINFO mii = {0};
mii.cbSize = sizeof(mii);
mii.fMask = MIIM_BITMAP;
mii.hbmpItem = hBmpForItem;
SetMenuItemInfo(hMenu, ID_1_MENUITEMID, FALSE, &mii);

これは Windows Vista/7 では問題なく機能しますが、Windows XP では、長いテキストを含む一部のメニュー項目が右側で切れてしまいます。それで、表示される前にメニュー自体の幅を広げる方法はありますか?

4

1 に答える 1

0

メニュー項目をowner-drawnとして作成し、メニュー オーナー ウィンドウでWM_MEASUREITEMメッセージを処理して、必要に応じて適切な幅を指定できるようにします。

于 2012-12-02T10:35:25.580 に答える