|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
09.02.2008, 08:58 | #11 | |
Форумчанин
Регистрация: 12.06.2007
Сообщений: 130
|
Цитата:
Код:
|
|
09.02.2008, 09:08 | #12 |
добрый няша
Старожил
Регистрация: 29.10.2006
Сообщений: 4,804
|
попробуй так:
Код:
|
09.02.2008, 09:13 | #13 |
Форумчанин
Регистрация: 12.06.2007
Сообщений: 130
|
Спасибо! Теперь работает.
А как узнать, что выбранный элемент ComboBox'а изменился? |
09.02.2008, 12:00 | #14 |
добрый няша
Старожил
Регистрация: 29.10.2006
Сообщений: 4,804
|
если изменяется выбранный элемент, то комбобоксу приходит сообщение CB_SETCURSEL, то тогда придётся делать сабклассинг.... но лучше всего сохранять предыдущее состояние комбобокса в какой-нибудь переменной и если текущее состояние не равно последнему, то оно изменилось.
|
25.02.2014, 17:42 | #15 |
Форумчанин
Регистрация: 13.02.2012
Сообщений: 867
|
|
25.02.2014, 17:56 | #16 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,331
|
Поплясать с бубном.
Ну или код показать... |
26.02.2014, 10:58 | #17 |
Форумчанин
Регистрация: 13.02.2012
Сообщений: 867
|
Танцы с бубном действительно помогли. Заработало.
Но теперь другая проблема. Мне нужна ручная отрисовка комбобокса. Использую стиль CBS_OWNERDRAWVARIABLE. Когда я вожу мышью по элементам выпавшего списка, то индекс комбо сразу меняется на тот, который в данный момент находится под курсором. Во вторых,при щелчке по элементу, список не закрывается. В-третьих, если нажать мышью на сам комбобокс, то список закроется, но в комбобоксе не отрисовывается текст. Не пойму, что я делаю не так. Дайте ссылки, где описаны эти вопросы. |
26.02.2014, 11:17 | #18 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,331
|
Читайте про WM_MEASUREITEM и WM_DRAWITEM, ну и продолжайте плясать...
|
26.02.2014, 11:47 | #19 |
Форумчанин
Регистрация: 13.02.2012
Сообщений: 867
|
Дык я и так сначала несколько раз перечитал http://www.cyberforum.ru/win-api/thread370073.html, поплясал, поиск по форуму юзал и только потом сюда написал. Отрисовывать айтемы получается, но при выборе список не закрывается. И в самом окошке комбо текста нет. А если и удается его вывести, то при перекрытии его другим комбо, текст пропадает.
Неужто, WM_PAINT юзать надо? |
26.02.2014, 12:06 | #20 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,331
|
Ща кофе допью и погадаю... покажите код, иначе как вам ответить?
Судя по всему - да, надо юзать WM_PAINT, но тогда наверно проще свой контрол написать. Ref: http://stackoverflow.com/questions/1...ox-shown-empty Хотя вот тут вроде и без WM_PAINT обходятся: http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx Edit: После парочки експериментов, для CBS_DROPDOWNLIST вызывается WM_DRAWITEM и для edit бокса (хотя это не едит вовсе). Для CBS_SIMPLE и CBS_DROPDOWN там обычный edit box и в него надо ручками вбивать текст для показа (те. отслеживать выбор элемента, CBN_SELENDOK, CBN_SELCHANGE), и показывать будет только текст. Последний раз редактировалось waleri; 26.02.2014 в 12:43. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Форма. Выпадающий список | 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 |