|
"расширенное" popup окно
|
|||
---|---|---|---|
#18+
Доброго времени суток, коллеги. Появилась необходимость создать свое собственное dropdown окно с различными функциями, опциями и т.д. Поискав решение, часто натыкался на совет создать свое собственное popup окно и вызывать его в соответствующих событиях, в зависимости от... Этот вариант решения устроил бы меня полнустью, но не могу решить одну проблему: Как открыть popup именно под курсором мыши? Popup окно не является в полной мере дочерним для MDI, поэтому определять его положение функциями PointerX и PointerY не корректно, т.к. они определяют координаты относительно рабочей зоны окна, а мне, судя по всему, необходимы координаты относительно монитора. Решением является подключение API и использование GetCursorPos, но хотелось бы уточнить, м.б. есть более изящные способы реализации собственного DropDownWindow? Подскажите, плз, может кто-нибудь решал схожие задачи... И еще вопрос вне темы, вдогонку, т.к. не критичен для процесса. :D Можно ли добавлять в Structure новые элементы в ходе работы программы, на лету, по аналогии с объявлением новых переменных? И/Или как это можно реализовать? Заранее благодарю! ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2011, 02:02 |
|
"расширенное" popup окно
|
|||
---|---|---|---|
#18+
PointerX и PointerY можно использовать, только надо учитывать смещение относительно меню и тулбара, нормально работает Код сейчас не помню где конкретно, давно делал, но попадание есть:) ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2011, 13:16 |
|
"расширенное" popup окно
|
|||
---|---|---|---|
#18+
spas2001, Только в случае стандартных размеров тулбара и шрифтов. в PB от 8 до 10.5 версий при выборе крупной схемы или шрифта побольше - идут смещения. Стандартные контролы не совсем корректные свои размеры дают. Приходится использовать либо API либо танцы с бубнами. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2011, 13:47 |
|
"расширенное" popup окно
|
|||
---|---|---|---|
#18+
С крупным шрифтом всегда проблемы и танцы с бубнами:) ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2011, 15:58 |
|
"расширенное" popup окно
|
|||
---|---|---|---|
#18+
andy753 , для определения размеров меню, бортов окна (в состоянии норм. и макс.) и т.п., ипользуйте функцию: Код: plaintext
А ещё обратите внимание, что внутри и за пределами MDI-окна разные единицы измерения, поэтому используйте для этого соответствующие функции РВ. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2011, 17:25 |
|
"расширенное" popup окно
|
|||
---|---|---|---|
#18+
DarknessSoulДоброго времени суток, коллеги. Появилась необходимость создать свое собственное dropdown окно с различными функциями, опциями и т.д. Поискав решение, часто натыкался на совет создать свое собственное popup окно и вызывать его в соответствующих событиях, в зависимости от... Этот вариант решения устроил бы меня полнустью, но не могу решить одну проблему: Как открыть popup именно под курсором мыши? ........ Заранее благодарю! ... вызывать его в соответствующих событиях ИЛИ под курсором мыши ? Вы о событиях вызванных матипуляциями мышью? Так или иначе, надо понимать, что есть некий контекст в котором вы хотите показывать это окно, и скорее всего этот "контекст" редактируемый. Если это так, то идея проста: 1) Определить кто в фокусе (с точки зрения Windows) - то бишь его handle 2) GetWindowRect этого handle (это даст точные координаты места где нужно открыть ваше окно) 3) Сделать поправку на рабочую поверхность (с помошью SystemParametersInfo) ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2011, 21:12 |
|
"расширенное" popup окно
|
|||
---|---|---|---|
#18+
Филипп , что-то это о-очень сложновато. ;) Достаточно просто определить месторасположение (например, по Х вектору) внутри рабочей области MDI, + скорректировать толщину по Х бордюр (взависимости от статуса окна) и добавить значение положение Х от MDI-окна. И скорректировать (читай - сконвертировать) только ширину "бордюра" и положение Х MDI-окна через упомянутую выше функцию, а остальное всё доступно в формате РВ. P.S. ...конечно при условии, что надо открыть окно как НЕ дочернее от MDI. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2011, 23:37 |
|
"расширенное" popup окно
|
|||
---|---|---|---|
#18+
AIS Филипп , что-то это о-очень сложновато. ;) Это на самом деле просто и точно. А "в формате РВ" в конце концов хрень получается. Но different strokes for different folks , так что :-))) ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2011, 23:54 |
|
"расширенное" popup окно
|
|||
---|---|---|---|
#18+
Филипп, Не получится только с использованием Windows API сделать. Человек хочет дропдаун открывать, значит ему нужно учитывать высоты header'ов в DataWindow (в т.ч. групп), сколько строк на экране видно и прочее. У нас есть мегаадский код, который вроде бы такое неплохо делает. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2011, 17:08 |
|
"расширенное" popup окно
|
|||
---|---|---|---|
#18+
То, что я предложил, реализовано для открытия самопального календаря в DataWindow, именно так, как я описал, и без каких бы то ни было вычислений высот рядов, хедеров, и т.п. белиберды... ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2011, 23:56 |
|
"расширенное" popup окно
|
|||
---|---|---|---|
#18+
ФилиппТо, что я предложил, реализовано для открытия самопального календаря в DataWindow, именно так, как я описал, и без каких бы то ни было вычислений высот рядов, хедеров, и т.п. белиберды... т.е. того контрола, который держит PB для редактирования текущего поля? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2011, 11:29 |
|
"расширенное" popup окно
|
|||
---|---|---|---|
#18+
Локшин МаркФилиппТо, что я предложил, реализовано для открытия самопального календаря в DataWindow, именно так, как я описал, и без каких бы то ни было вычислений высот рядов, хедеров, и т.п. белиберды... т.е. того контрола, который держит PB для редактирования текущего поля? Да ... |
|||
:
Нравится:
Не нравится:
|
|||
02.11.2011, 01:05 |
|
"расширенное" popup окно
|
|||
---|---|---|---|
#18+
ФилиппЛокшин Маркпропущено... т.е. того контрола, который держит PB для редактирования текущего поля? Да У Вас привязка к кординатам курсора. А так как на рисунке, тоже можно? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.11.2011, 13:07 |
|
"расширенное" popup окно
|
|||
---|---|---|---|
#18+
AISФилипппропущено... Да У Вас привязка к кординатам курсора. А так как на рисунке, тоже можно? Если вопрос был ко мне, то у меня (в обсуждаемом исполнении) НЕТ привязки к координатам курсора. А вот на картинке, которую вы прилепили, написано что-то про Tooltip. Вот Tooltips должны быть привязаны к мышке, если скачать моё исполнение Datawindow Tooltips с Sybase CodeExchange, то там так :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
02.11.2011, 19:36 |
|
|
start [/forum/topic.php?fid=15&msg=37503581&tid=1335623]: |
0ms |
get settings: |
12ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
33ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
others: | 274ms |
total: | 393ms |
0 / 0 |