Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Перерисовка пунктов меню на WinAPI 
:(
    Опции темы
Dmitry_177
Дата 20.1.2007, 16:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 418
Регистрация: 22.9.2006

Репутация: нет
Всего: нет



Создаю пункты меню с флагом MFT_OWNERDRAW, чтобы можно было их перерисовывать в WM_DRAWITEM.. 
В структуре DrawItemStruct, т.е.
PDrawItemStruct(lParam)^.itemState = ODS_SELECTED Я рассматриваю это состояние, когда курсор зашел на пункт меню и находится над ним и сам рисую его.. А вот как мне определить что курсор вышел за пределы курсора? Чтобы перерисовать его в начальное состояние.. Т.е. так не получается...

Код

if PDrawItemStruct(lParam)^.itemAction = ODA_SELECT then
 // рисую подсвеченный пункт меню
else
 // рисую пункт меню в обычном состоянии


Я и с itemState пробовал, что-то до меня никак не доходит...((( Подскажите пожалуйста... Вобщем мне нужно вот что: в этой структуре DrawItemStruct определять как перерисовывать пункт меню: 1. наведение курсора на меню, т.е. что можно на него нажать; 2. когда курсор выходит за пределы меню, например на другой пункт меню, перерисовать его в обычное состояние, т.е. не выбранное.. Что-то я совсем запутался с этим... Подскажите плиз.. 
PM MAIL   Вверх
Dmitry_177
Дата 20.1.2007, 17:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 418
Регистрация: 22.9.2006

Репутация: нет
Всего: нет



Понял свою маленькую ошибочку.. Сделал так:
Код

if (itemState and ODS_SELECTED) <> 0 then
// рисую подсвеченный пункт меню
else
 // рисую пункт меню в обычном состоянии


Я работаю с главным меню.. При простом наведении курсора на пункт меню(не раскрывшегося, а то которое вверху окна) он у меня не подсвечивается.. smile   Вот если раскрыть меню и перетаскивать курсор на соседние пункты главного меню, то все происходит как надо, а вот без раскрытия что-то никак... smile 
PM MAIL   Вверх
Dmitry_177
Дата 20.1.2007, 19:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 418
Регистрация: 22.9.2006

Репутация: нет
Всего: нет



Неужели никто не знает?? Ведь полюбому в системе происходит какое-то событие при наведении курсора на пункт меню, раз уж оно подсвечивается и без собственной отрисовки...
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: WinAPI и системное программирование"
Snowybartram
MetalFanbems
PoseidonRrader
Riply

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Delphi обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • 99% ответов по WinAPI можно найти в MSDN Library, оставшиеся 1% здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема »


 




[ Время генерации скрипта: 0.0698 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.