Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.03.14;
Скачать: CL | DM;

Вниз

Margin и PopupMenu   Найти похожие ветки 

 
Evgeny ©   (2002-01-11 13:39) [0]

Хотелось бы нарисовать полоску в PopupMenu (как в кнопке пуск). Вроде все просто - лови WM_DRAWITEM и обрабатывай. Но это сообщение дает Rect на конкретный Item, а требуется узнать Rect на все меню. Поделитесь у кого есть соображения на сей счет. А может есть какие другие идеи.


 
nikkie ©   (2002-01-11 16:03) [1]

разрезать картинки на n кусочков (n - количество пунктов в меню). на WM_DRAWITEM отрисовывать соответствующую часть картинки.


 
Gennady ©   (2002-01-11 17:44) [2]

дай адрес, вышлю пример


 
Evgeny ©   (2002-01-12 07:28) [3]

>nikkie
Каким образом тогда узнать размеры пунктов MF_SEPARATOR


 
Evgeny ©   (2002-01-12 08:34) [4]

>Gennady
Afro@sibovk.omskcity.com


 
Igor_thief ©   (2002-01-14 19:53) [5]

Народ, а киньте и мне такой исходник. Буду очень благодарен.


 
nikkie ©   (2002-01-14 20:36) [6]

>Evgeny
вроде бы стандартно они такого же размера как и все остальные пункты меню.

но зачем их узнавать? ты на них собираешься рисовать? тогда они будут стиля MF_OWNERDRAW и их размер ты сам определишь на WM_MEASUREITEM.


 
Evgeny ©   (2002-01-15 14:40) [7]

>Gennady.
Спасибо. Пример получил, вечером поковыряю.

>nikkie.
Мои изыскания.
В MeasureItem увеличиваем ширину меню на размер полоски:

if lpmis.CtlType = ODT_MENU then
if MarginLeft > 0 then
inc(lpmis.itemWidth, MarginLeft + 1);

а в DrawItem можно отрисовать:

if lpdis.itemAction = ODA_DRAWENTIRE then
begin
GetClipBox(lpdis.hDC, MarginRect);
MarginRect.Right := MarginLeft;
FillBkGradient(lpdis.hDC, MarginRect, $808080, $000000, 32, flTop);
end;

Ну остались в принципе мелочи.



Страницы: 1 вся ветка

Текущий архив: 2002.03.14;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.007 c
6-43126
ken
2001-12-26 16:24
2002.03.14
как написать прогу для переадресации сетевых потоков TCP/IP?


14-43154
fliz
2002-01-30 13:10
2002.03.14
2 Merlin : заметил ОЧЕПЯТКУ на этой странице (причем давно...)


1-43003
Макс
2002-02-28 16:37
2002.03.14
Копирование TImage -> TImage


4-43224
kirya85
2002-01-16 08:45
2002.03.14
Как изменить размер окна чужого приложения?


3-42935
sniknik
2002-02-14 11:36
2002.03.14
Связь между базами. dbf(dBase) к (mdb) Access