Как CListBox вывести над окном (типа меню и ComboBox-a)?
От: AndrejKosandry  
Дата: 27.05.03 09:31
Оценка:
Добрый день.

Люди, подскажите, пожалуйста, Как CListBox вывести над окном. Нужно, чтобы CListBox появился
возле нижней границы окна и "продолжился" за нижний бордюр окна (строк на 10). В таком "стиле"
выпадает меню. В таком стиле вываливается список у CComboBox.

Когда я создаю CListBox, ф-ция Create(...) требует обязательного задания родительского окна.
У контрола устанавливается параметр WS_CHILDWINDOW. Если я его пытаюсь убрать руками:
History.ModifyStyle(WS_CHILDWINDOW, WS_POPUP);
... ничего не получается. Стили переставляются, но CListBox продолжает прорисовывает только свою часть,
попадающую в пределы окна-владельца.
Что делать?

Андрей.
Re: Как CListBox вывести над окном (типа меню и ComboBox-a)?
От: SchweinDeBurg Россия https://zarezky.spb.ru/
Дата: 27.05.03 09:45
Оценка:
Здравствуйте, AndrejKosandry, Вы писали:

Парентом "вываливающегося списка" у ComboBox'а является desktop window. Не наводит на размышления?
- Искренне ваш, Поросенок Пафнутий
Re[2]: Как CListBox вывести над окном (типа меню и ComboBox-
От: a_minadze Россия  
Дата: 27.05.03 09:53
Оценка:
Здравствуйте, SchweinDeBurg, Вы писали:

SDB>Здравствуйте, AndrejKosandry, Вы писали:


SDB>Парентом "вываливающегося списка" у ComboBox'а является desktop window. Не наводит на размышления?


Хотя это IMHO.
В действительности, всё не так как на самом деле

По моему всё дело в WS_EX_OVERLAPPEDWINDOW... Или я неправ?
The darkness around me
Shores of solar sea
Oh how i wish to go down with the sun....
Re[2]: Как CListBox вывести над окном (типа меню и ComboBox-
От: a_minadze Россия  
Дата: 27.05.03 10:04
Оценка:
Здравствуйте, SchweinDeBurg, Вы писали:

SDB>Здравствуйте, AndrejKosandry, Вы писали:


SDB>Парентом "вываливающегося списка" у ComboBox'а является desktop window. Не наводит на размышления?


Другой вариант... Лепим производный класс от CListBox назначаем ему при создании парента NULL, загоняем координаты относительно "родительского" окна, при этом не показывая его (ну или показывая, если очень надо) и ставим на него SetCapture, а т.к. он производный еще и от CWnd то имеем OnCaptureChanged() в котором, при переходе капчуры на другое окно прячем наш ЛистБокс с глаз долой.

з.ы. Ну можно еще конечно проверку устроить, что ежели кликнули за пределами его ректа то тоже релизим капчурь. Ну как идея, думаю, прокатит
The darkness around me
Shores of solar sea
Oh how i wish to go down with the sun....
Re[3]: Как CListBox вывести над окном (типа меню и ComboBox-
От: SchweinDeBurg Россия https://zarezky.spb.ru/
Дата: 27.05.03 10:28
Оценка:
Здравствуйте, a_minadze, Вы писали:

SDB>>Парентом "вываливающегося списка" у ComboBox'а является desktop window. Не наводит на размышления?


_> Хотя это IMHO.

_>В действительности, всё не так как на самом деле

_>По моему всё дело в WS_EX_OVERLAPPEDWINDOW... Или я неправ?


AFAIK нет.
- Искренне ваш, Поросенок Пафнутий
Re[4]: Как CListBox вывести над окном (типа меню и ComboBox-
От: a_minadze Россия  
Дата: 27.05.03 10:32
Оценка:
Здравствуйте, SchweinDeBurg, Вы писали:

SDB>Здравствуйте, a_minadze, Вы писали:


SDB>>>Парентом "вываливающегося списка" у ComboBox'а является desktop window. Не наводит на размышления?


_>> Хотя это IMHO.

_>>В действительности, всё не так как на самом деле

_>>По моему всё дело в WS_EX_OVERLAPPEDWINDOW... Или я неправ?


SDB>AFAIK нет.


Но наличие парентом Desktop-а означает прилепление окна к оному
Либо его отсутствие (парента) ли одно из двух, коллега
The darkness around me
Shores of solar sea
Oh how i wish to go down with the sun....
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.