Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.144.230.82] |
|
Страницы: (2) 1 [2] все ( Перейти к последнему сообщению ) |
Сообщ.
#16
,
|
|
|
О как! Вообще у меня контрол порожденный от CEdit c кнопкой. У меня просто в нем дофига доп функций, типа ввода по маске и т.д. Вот и хочу по кнопке вызывать календарь и закрывать если мимо ткнул мышкой. В 6-й студии все работало, правда там я извратился с таймером, если окно не в фокусе больше секунды то закрываем диалог, коряво согласен, но тогда меня устроило. А сейчас захотелось библиотеку перенести в 2013 студию и хочется сделать правильно. Вот как-то так.
|
Сообщ.
#17
,
|
|
|
Цитата Sander @ Вообще у меня контрол порожденный от CEdit c кнопкой. У меня просто в нем дофига доп функций, типа ввода по маске и т.д. Вот и хочу по кнопке вызывать календарь и закрывать если мимо ткнул мышкой. Т.е. что-то типа комбо-бокса? Там диалог не нужен, создавай календарь через CreateWindow(...WS_POPUP...), сразу делай для него SetCapture и т.д. |
Сообщ.
#18
,
|
|
|
Не пойму а как тогда в контроле определить состояние курсора? Вывести его на экран положим не проблема, а как организовать взаимодействие, я что-то затрудняюсь
|
Сообщ.
#19
,
|
|
|
Цитата Sander @ Не пойму а как тогда в контроле определить состояние курсора? Вывести его на экран положим не проблема, а как организовать взаимодействие, я что-то затрудняюсь Что значит "определить состояние курсора" и что значит "организовать взаимодействие"? |
Сообщ.
#20
,
|
|
|
Ну контрол должен как-то узнать что он не активен и самоуничтожиться
|
Сообщ.
#21
,
|
|
|
Цитата Sander @ если окно не в фокусе больше секунды то закрываем диалог, А ты возьми и сделай так - если тайм-аут наступил, начинай плавно увеличивать прозрачность этого окошка. Вплоть до почти полной невидимости. А когда поверх пройдёт мышь, сделай окошко 100% видимым. Добавлено Цитата Sander @ У меня просто в нем дофига доп функций, типа ввода по маске и т.д. Не обязательно делать дополнительный контрол в отдельном диалоге. Размести на основном диалоге мааааленькую кнопочку. С номером страницы. Это будет переключатель страниц. Переключил страницу - увидел календарь. (Или основной диалог.) Время прошло, таймер переключил страницу назад. |
Сообщ.
#22
,
|
|
|
Цитата Sander @ Ну контрол должен как-то узнать что он не активен и самоуничтожиться Ты же вроде уже сделал, через SetCapture. Здесь ещё проще, окно только одно, можно сразу после CreateWindow сделать SetCapture, а при нажатии мышки за переделами окна - ReleaseCapture и DestroyWindow Добавлено Или ты имеешь ввиду, что это не твой контрол и ты не знаешь как обрабатывать его сообщения? Там можно как-то переопределить процедуру окна, SubclassWindow или что-то типа того. |