![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#21 |
Форумчанин
Регистрация: 13.02.2012
Сообщений: 867
|
![]() Код:
Это со стилем CBS_OWNERDRAWFIXED. Последний раз редактировалось BLACK_RAIN; 26.02.2014 в 13:09. |
![]() |
![]() |
![]() |
#22 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,331
|
![]()
Прочитайте описание структуры DRAWITEMSTRUCT - ваш обработчик абсолютно неправилен.
Возможно вникнув почему называется WM_DRAWITEM станет понятней. |
![]() |
![]() |
![]() |
#23 |
Форумчанин
Регистрация: 13.02.2012
Сообщений: 867
|
![]()
Выходит, код по моей ссылке неправильный? Я же по нему это писал.
натолкните на мысль. Если использовать CBS_OWNERDRAWVARIABLE, то сообщение приходит для каждого элемента и они обрабатываются отдельно. Не пойму, что я упустил? Последний раз редактировалось BLACK_RAIN; 26.02.2014 в 16:31. |
![]() |
![]() |
![]() |
#24 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,331
|
![]()
WM_DRAWITEM всегда приходит для каждого элемента, при использовании CBS_DROPDOWNLIST - даже для места, где обычно находится edit box.
При CBS_OWNERDRAWVARIABLE приходит и WM_MEASUREITEM. |
![]() |
![]() |
![]() |
#25 |
Форумчанин
Регистрация: 13.02.2012
Сообщений: 867
|
![]()
waleri
Cейчас попробую переписать точь в точь по MSDN и посмотрю, будет работать или нет. |
![]() |
![]() |
![]() |
#26 |
Форумчанин
Регистрация: 13.02.2012
Сообщений: 867
|
![]()
Всё получилось!
Но теперь я не пойму, как получить индекс комбо, чтобы сравнить его с itemID. CB_GETCURSEL возвращает индекс элемента, который находится под курсором, а не выбранный индекс комбо. Полагаю, что можно брать текст из комбо и сравнивать его с текстом элемента. Если они совпали - менять цвет. Но это как-то стрёмно выглядит. Есть ли более правильное решение? |
![]() |
![]() |
![]() |
#27 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,331
|
![]()
А это зачем?
Если то, о чем я думаю, то для этого есть itemState и itemAction. |
![]() |
![]() |
![]() |
#28 |
Форумчанин
Регистрация: 13.02.2012
Сообщений: 867
|
![]()
Чтобы выбранный айтем отображался в списке другим цветом или еще как-то выделялся. В данный момент, это не важно. Но на будущее, хотелось бы сразу прояснить этот момент.
Я тоже так думал и с ними плясал, но не выходит. Айтемы либо все красные, либо все чёрные, либо меняют цвет при движении мыши. Я не понял, что с чем нужно сравнивать (смотрел в MSDN список возможных значений). Код:
|
![]() |
![]() |
![]() |
#29 |
Форумчанин
Регистрация: 13.02.2012
Сообщений: 867
|
![]()
Всё, спасибо, разобрался!
Немного не так, как хотел, но работает. |
![]() |
![]() |
![]() |
#30 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,331
|
![]()
Я повторюсь, для этого есть itemState и itemAction... но как знаете...
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Форма. Выпадающий список | SNkMaster | HTML и CSS | 13 | 15.03.2010 15:02 |
Выпадающий список | Акашаев Нурлан | Общие вопросы Delphi | 3 | 27.06.2008 16:58 |
Выпадающий список в таблице БД | Antowka | БД в Delphi | 14 | 28.05.2008 15:18 |
выпадающий список | SunKnight | БД в Delphi | 1 | 24.03.2008 22:44 |
выпадающий список | Toxa | Microsoft Office Excel | 2 | 23.04.2007 09:40 |