Как изменить размер контекстного меню, отображаемого с помощью TrackPopupMenu?

Я отображаю контекстное меню из кода C ++ с помощью API TrackPopupMenu. Каждый пункт меню содержит растровое изображение размером 24×24 пикселя. Добавлено по телефону:

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 некоторые пункты меню с более длинным текстом обрезаются справа. Итак, мне было интересно, есть ли способ увеличить ширину самого меню до его отображения?

0

Решение

Создайте свои пункты меню как Владелец нарисованные, тогда ваше окно владельца меню обработает WM_MEASUREITEM сообщение, чтобы вы могли указать соответствующие ширины по мере необходимости.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]