Здравствуйте Алекс, Вы писали:
А>Здравствуйте eugene_mpei, Вы писали:
EM>>Подскажите, пожалуйста, как поместить картинку рядом с названием пункта меню, используя только WinAPI? Пробовал использовать функцию SetMenuItemBitmaps, но изображение получается черно-белым.
А>С помощью стандартных средств, AFAIK, никак.
флаг MFT_BITMAP
и поля
hbmpChecked
hbmpUnchecked
... << RSDN@Home 1.0 alpha 12 РУЛИТ!!! >>
Если при компиляции и исполнении вашей программы не происходит ни одной ошибки — это ошибка компилятора :)))
Здравствуйте eugene_mpei, Вы писали:
EM>Подскажите, пожалуйста, как поместить картинку рядом с названием пункта меню, используя только WinAPI? Пробовал использовать функцию SetMenuItemBitmaps, но изображение получается черно-белым.
Смотри значение MFT_OWNERDRAW поля fType структуры MENUITEMINFO
вобщем и целом идея этого подхода сводится к тому, что когда пункт меню нужно будет отрисовать, система сообщит об этом тебе, и ты сможешь нарисовать на этом пункте все, что захочешь
Здравствуйте eugene_mpei, Вы писали:
EM>Подскажите, пожалуйста, как поместить картинку рядом с названием пункта меню, используя только WinAPI? Пробовал использовать функцию SetMenuItemBitmaps, но изображение получается черно-белым.
Подскажите, пожалуйста, как поместить картинку рядом с названием пункта меню, используя только WinAPI? Пробовал использовать функцию SetMenuItemBitmaps, но изображение получается черно-белым.
Здравствуйте Ed.ward, Вы писали:
EW>Здравствуйте eugene_mpei, Вы писали:
EM>>Подскажите, пожалуйста, как поместить картинку рядом с названием пункта меню, используя только WinAPI? Пробовал использовать функцию SetMenuItemBitmaps, но изображение получается черно-белым.
EW>Смотри значение MFT_OWNERDRAW поля fType структуры MENUITEMINFO EW>вобщем и целом идея этого подхода сводится к тому, что когда пункт меню нужно будет отрисовать, система сообщит об этом тебе, и ты сможешь нарисовать на этом пункте все, что захочешь
EW>Ed.ward
а про MFT_BITMAP ты забыл???
... << RSDN@Home 1.0 alpha 12 РУЛИТ!!! >>
Если при компиляции и исполнении вашей программы не происходит ни одной ошибки — это ошибка компилятора :)))
Здравствуйте Алекс, Вы писали:
А>Здравствуйте Hacker_Delphi, Вы писали:
А>хъ
HD>>флаг MFT_BITMAP HD>>и поля HD>>hbmpChecked HD>>hbmpUnchecked
А>И чего? Будет такая же черно белая битмапка. Еще раз повторю, что без использования WM_MEASUREITEM и проч. не обойтись.
Черно-белая??? Ты о чем?
В енти мемберы пишутся Handle'ы ЛЮБЫХ битмапок — проверено, работает (а иначе как бы Context Menu в Explorer рисовались??? там нельзя OwnerDraw пользовать )
Цитата из описания структуры MENUITEMINFO из MSDN:
fType — Menu item type. This member can be one or more of these values. MFT_BITMAP — Displays the menu item using a bitmap. The low-order word of the dwTypeData member is the bitmap handle, and the cch member is ignored.
Windows 98/Me, Windows 2000/XP: MFT_BITMAP is replaced by MIIM_BITMAP and hbmpItem
Алгоритм добавления картинки:
1. Создаем ManuItem
2. Через SetMenuItemInfo прописываем Handle изображения
... << RSDN@Home 1.0 alpha 12 РУЛИТ!!! >>
Если при компиляции и исполнении вашей программы не происходит ни одной ошибки — это ошибка компилятора :)))
Здравствуйте, Ed.ward, Вы писали:
EW>Здравствуйте eugene_mpei, Вы писали:
EM>>Подскажите, пожалуйста, как поместить картинку рядом с названием пункта меню, используя только WinAPI? Пробовал использовать функцию SetMenuItemBitmaps, но изображение получается черно-белым.
EW>Смотри значение MFT_OWNERDRAW поля fType структуры MENUITEMINFO EW>вобщем и целом идея этого подхода сводится к тому, что когда пункт меню нужно будет отрисовать, система сообщит об этом тебе, и ты сможешь нарисовать на этом пункте все, что захочешь
EW>Ed.ward
ну и за что мне "0", товарищ PSP, просветите в чем я неправ, а то так дураком и помру
Расскажу небольшой секрет.
Существуют ограничения USER/GDI для 9x, не описанные в MSDN. У меня где-то бук валяется на эту тему. Потому цветные или ч/б картинки (не) вставляются — извольте указать версию Windows. За себя ручаюсь, 2000-я у меня цветные вставляла.