![]() |
|
![]() ![]() ![]() |
|
17dufa |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 324 Регистрация: 2.3.2006 Репутация: нет Всего: 5 |
Добрый день.
На формочке есть invisible listbox. по кнопочке он заполняется результатами выборки и отображается под Edit. Делается это для облегчения ввода информации в этот самый Edit, по окончанию выбора ListBox снова скрывается. Но есть неприятность: ListBox отображается под другими элементами формы, а надо чтоб был над, то есть пока ListBox виден он перекрывает другие Edit, в идеале, даже если перенести фокус на Edit под Listbox, Listbox должен отрисоваться поверх. Пробовал менять ListBox'у tabstop, пробовал вызывать ему SetWindowPos с wndTop и с wndTopMost - не помогает. |
|||
|
||||
Albor |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 589 Регистрация: 28.2.2009 Репутация: 7 Всего: 9 |
Не совсем понятно. Если в одном и том же месте располагаются несколько элементов, то показывать их нужно по очереди, то есть: если listbox видимый, то edit скрытый и наоборот, но никак не оба видимые.
Это сообщение отредактировал(а) Albor - 8.9.2009, 15:11 |
|||
|
||||
17dufa |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 324 Регистрация: 2.3.2006 Репутация: нет Всего: 5 |
Albor, в том-то и дело, что ListBox, когда видимый, должен перекрывать часть других контролов, которые видимы всегда.
|
|||
|
||||
Albor |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 589 Регистрация: 28.2.2009 Репутация: 7 Всего: 9 |
Думаю что ничего не выйдет, так как контролы рисуются в одном и том же месте. Нужно принудительно перерисовывать listbox после каждой прорисовки каждого edit-а, находящегося под ним.
|
|||
|
||||
17dufa |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 324 Регистрация: 2.3.2006 Репутация: нет Всего: 5 |
Albor, а можно поменять порядок отрисовки? поставить ListBox в конец и всех делов.
|
|||
|
||||
Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
Да можно, конечно. Показывай свой лист бокс не просто командой SW_SHOW, а через SetWindowPos:
pListBox->SetWindowPos (&wndTop, rPos.left, rPos.top, 0, 0, SWP_SHOWWINDOW | SWP_NOSIZE); Здесь предполагается, что размер лист-бокса уже установлен, и он только перемещается. Если и перемещать не надо, то rPos замени нулями и добавь флаг SWP_NOMOVE. Только сдается мне, что ты изобретаешь велосипед. Чем тебе комбобокс-то не угодил? Ровно это и делает, только сам. -------------------- ... |
|||
|
||||
17dufa |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 324 Регистрация: 2.3.2006 Репутация: нет Всего: 5 |
Earnest, не работает, ListBox под остальными контролами рисуется.
вообщем, заменил все на невидимый CComboBox, рисую его ShowWindow SW_HIDE/SW_SHOW. работает. |
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |