Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2005.09.18;
Скачать: [xml.tar.bz2];

Вниз

CM_CANCELMODE   Найти похожие ветки 

 
dima_shapkin   (2005-07-25 19:57) [0]

Уважаемы коллеги,
пришлось воспользоваться несколькими контроллами, написанными на Дельфе в Excele(вот такой вот поворот....)
В контролле приходится показывать popup окна(наподобии Combobox-a), которые скрываются и по дельфовскому событию CM_CANCELMODE, которое генерит форма, а тут вот такой облом.... "враждебная среда"....
Контрол в фокусе, имеет область ввода, попуп окно показывается и фокус не забирает на себя, эксперементальным путем я выяснил что события виндовые никакие не приходят, если я пытаюсь щелкнуть например в области родительского окна контролла дабы мне скрыть попуп окно....
Ведь стандартный виндовый комбобокс также состоит из окна на котором лежит едит, рядом нарисована кнопка.... но как он закрывает "язык" ума не приложу.... надеюсь я понятно объяснил? :))))


 
alpet ©   (2005-07-25 21:28) [1]

И немудренно, например Hint"ы в Delphi, если я не ошибаюсь работают через ловушки, поэтому работать вне формы немогут (зато есть и стандартные хинты в WinAPI). Так уж получается - VLC сама на себя завязана, и если связь рвется - результатом становится неработоспособность программы.

Кстати, обычный Comboxbox вроде бы одно окно, без дочерних popup, его "раскрытие" выражается только в увеличении размера. У тебя видимо несколько другая реализация - вроде DateTimePicker. Решение пока могу только одно предложить - компонент использовать для создания своего компонента (через наследование), но при этом реализовать свою логику закрывания (например через те-же ловушки).


 
dima_shapkin   (2005-07-25 22:55) [2]

в стандартных хинтах в WinAPI, если я не ошибаюсь при "ручном управлении" включения и выключения опять же таже проблема, надо скрывать хинты при клике на окно....
Да и сам комбобокс же сворачивает язык по какому-то событию...
Не ловушку же он ставит ....


 
alpet ©   (2005-07-25 23:05) [3]

Нет, ловушку он не ставит. Наверняка на сообщениях держиться, типа WM_KILLFOCUS (ну и клавирные есстно), и заодно выполняет SetCapture.


 
dima_shapkin   (2005-07-26 10:07) [4]

А как он отлавливает мышиные клики родительского окна, например?


 
alpet ©   (2005-07-26 10:34) [5]

Про SetCapture и ReleaseCapture ты почитал? По идее после "захвата" мыши, в каком-бы ты месте не кликнул - сообщение WM_LBUTTONDOWN пойдет в то окно, что указано в параметре SetCapture.


 
dima_shapkin   (2005-07-26 10:44) [6]

Ну да :)


 
dima_shapkin   (2005-07-26 11:43) [7]

<Кстати, обычный Comboxbox вроде бы одно окно, без дочерних <popup, его "раскрытие" выражается только в увеличении размера

Язык комбобокса это обычное окно, достаточно просто в таймере двигать форму при открытом языке.... :)))


 
alpet ©   (2005-07-26 11:53) [8]

dima_shapkin   (26.07.05 11:43) [7]
Вот видишь, еще надо у родительского окна как-то и WM_WINDOWPOSCHANGING отлавливать :)



Страницы: 1 вся ветка

Форум: "WinAPI";
Текущий архив: 2005.09.18;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.013 c
4-1120929115
Olejek
2005-07-09 21:11
2005.09.18
Включение-отключение сетевого адаптера


3-1123485949
Zaero
2005-08-08 11:25
2005.09.18
При изменении информации, размер *.mb файла не уменьшается!


14-1124653743
Piter
2005-08-21 23:49
2005.09.18
Помогите опознать песенку...


14-1124977746
Digitman
2005-08-25 17:49
2005.09.18
Полтергейст ....


1-1125150868
Duffik
2005-08-27 17:54
2005.09.18
Определение нажатой кнопки





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский