Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ListBox поверх Edit 
V
    Опции темы
17dufa
Дата 8.9.2009, 13:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Добрый день.
На формочке есть invisible listbox. по кнопочке он заполняется результатами выборки и отображается под Edit. Делается это для облегчения ввода информации в этот самый Edit, по окончанию выбора ListBox снова скрывается. Но есть неприятность: ListBox отображается под другими элементами формы, а надо чтоб был над, то есть пока ListBox виден он перекрывает другие Edit, в идеале, даже если перенести фокус на Edit под Listbox, Listbox должен отрисоваться поверх. Пробовал менять ListBox'у tabstop, пробовал вызывать ему SetWindowPos с wndTop и с wndTopMost - не помогает.
PM MAIL   Вверх
Albor
Дата 8.9.2009, 15:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Не совсем понятно. Если в одном и том же месте располагаются несколько элементов, то показывать их нужно по очереди, то есть: если listbox видимый, то edit скрытый и наоборот, но никак не оба видимые.

Это сообщение отредактировал(а) Albor - 8.9.2009, 15:11
PM MAIL ICQ   Вверх
17dufa
Дата 8.9.2009, 15:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Albor, в том-то и дело, что ListBox, когда видимый, должен перекрывать часть других контролов, которые видимы всегда.
PM MAIL   Вверх
Albor
Дата 8.9.2009, 15:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Думаю что ничего не выйдет, так как контролы рисуются в одном и том же месте. Нужно принудительно перерисовывать listbox после каждой прорисовки каждого edit-а, находящегося под ним.
PM MAIL ICQ   Вверх
17dufa
Дата 8.9.2009, 15:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Albor, а можно поменять порядок отрисовки? поставить ListBox в конец и всех делов.
PM MAIL   Вверх
Earnest
Дата 8.9.2009, 17:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 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.

Только сдается мне, что ты изобретаешь велосипед. Чем тебе комбобокс-то не угодил? Ровно это и делает, только сам.


--------------------
...
PM   Вверх
17dufa
Дата 9.9.2009, 11:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Earnest, не работает, ListBox под остальными контролами рисуется.
вообщем, заменил все на невидимый CComboBox, рисую его ShowWindow SW_HIDE/SW_SHOW. работает.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




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


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

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