Добрый день.
Люди, подскажите, пожалуйста, Как CListBox вывести над окном. Нужно, чтобы CListBox появился
возле нижней границы окна и "продолжился" за нижний бордюр окна (строк на 10). В таком "стиле"
выпадает меню. В таком стиле вываливается список у CComboBox.
Когда я создаю CListBox, ф-ция Create(...) требует обязательного задания родительского окна.
У контрола устанавливается параметр WS_CHILDWINDOW. Если я его пытаюсь убрать руками:
History.ModifyStyle(WS_CHILDWINDOW, WS_POPUP);
... ничего не получается. Стили переставляются, но CListBox продолжает прорисовывает только свою часть,
попадающую в пределы окна-владельца.
Что делать?
Андрей.
Здравствуйте, AndrejKosandry, Вы писали:
Парентом "вываливающегося списка" у ComboBox'а является desktop window. Не наводит на размышления?
Здравствуйте, SchweinDeBurg, Вы писали:
SDB>Здравствуйте, AndrejKosandry, Вы писали:
SDB>Парентом "вываливающегося списка" у ComboBox'а является desktop window. Не наводит на размышления?

Хотя это IMHO.
В действительности, всё не так как на самом деле
По моему всё дело в WS_EX_OVERLAPPEDWINDOW... Или я неправ?
Здравствуйте, SchweinDeBurg, Вы писали:
SDB>Здравствуйте, AndrejKosandry, Вы писали:
SDB>Парентом "вываливающегося списка" у ComboBox'а является desktop window. Не наводит на размышления?
Другой вариант... Лепим производный класс от CListBox назначаем ему при создании парента NULL, загоняем координаты относительно "родительского" окна, при этом не показывая его (ну или показывая, если очень надо) и ставим на него SetCapture, а т.к. он производный еще и от CWnd то имеем OnCaptureChanged() в котором, при переходе капчуры на другое окно прячем наш ЛистБокс с глаз долой.
з.ы. Ну можно еще конечно проверку устроить, что ежели кликнули за пределами его ректа то тоже релизим капчурь. Ну как идея, думаю, прокатит