|
|
|
Как получить Handle элемента управления пользовательской формы?04.09.2014, 11:54. Показов 10807. Ответов 21
Метки нет (Все метки)
Коллеги, привет !!!
недавно столкнулся с тем, что невозможно нормально получить hWnd контрола... в среде VBA например, я знаю как получить описатель с помощю FindWindow(vbNullString, me.Caption) но этого недостаточно, надо получить описатель контрола... напртимер, я забросил некий контрол, и пытаюсь получить hWnd_Txt= FindWindowEx (hWnd, 0 "Trunder.." не могу понять, что требуется, в VB6 такой проблемы нет, там это есть в свойствах почти любого контрола помогите вот с чем, ... как получить описатели разных контролов, (очень нужно) Добавлено через 35 минут Наверное зря спросил, врят-ли кто сможет ответить
0
|
|
| 04.09.2014, 11:54 | |
|
Ответы с готовыми решениями:
21
Свойства и методы элементов управления для пользовательской формы. Перенос текста из элемента управления одной формы на элемент управления другой Как запретить закрытие пользовательской формы |
|
Модератор
|
|
| 04.09.2014, 13:37 | |
Сообщение было отмечено The trick как решение
Решение
Это не указатель, а хендл. Его имеют только окна, windowless контролы его не имеют. Те которые имеют возвращают его посредством метода _GethWnd (handle = Frame1.[_GethWnd]). Но для этого объект должен наследовать интерфейс MSForms.Control
1
|
|
|
|
|
| 04.09.2014, 15:06 [ТС] | |
|
The Trick, тема была переименованна не мной.. но это не важно
так как это сделать ?
0
|
|
|
|
|
| 04.09.2014, 15:09 [ТС] | |
|
_GethWnd ..это что, скрытый метод.. ?, что это?
0
|
|
|
|
||||||
| 04.09.2014, 16:38 [ТС] | ||||||
|
Не работает для TextBox.. возвращает 0
а его мне и надо было..
.. почему в VBA всё через ж..у ? не работают подовляющее больнинство нужных свойств и методов.. зато нагроможденно всякой ерунды.. из за чего потом всю среду глючит ![]() Добавлено через 9 минут ..сделал продвинутый запрос в строке гугл .. Получить Handle vba OR excel "[_GethWnd]" -net -64 -c++ -c# -delphi -..ни одного адекватного ответа, никто этим еще не интересовался
0
|
||||||
|
|
||||||||||||||||||||||
| 04.09.2014, 17:14 [ТС] | ||||||||||||||||||||||
|
Скрытых методов и свойств, даже больше чем *открытых*
странно, как вообще можно говорить о программировании на VBA, это несерьёзно ![]() Кликните здесь для просмотра всего текста
Добавлено через 9 минут Добавлено через 2 минуты Сейчас делаю класс для мульти-использования хуков.. так вот, мне надо знать как получить это свойство, иначе не получится продемонстрировать ![]() Добавлено через 2 минуты Вот мои разработки.. Модуль mHook
Класс UGHook
Добавлено через 2 минуты Пример использования примерно такой
На VB6 это работает, так-как я уже сказал проблем нет, с этим свойством его можно получить у всех контролов кроме лэйбла и рисовальных фигур
0
|
||||||||||||||||||||||
|
|
|
| 04.09.2014, 17:33 [ТС] | |
|
Значит никак...
Добавлено через 7 минут Ну как-то же оно должно управляться.. пусть даже той-же средой VBA ? ..может я не там ищу ? у меня нет специальных средств для получения еще большей инфы.. Добавлено через 2 минуты Кстати, что это за мониторинговая программа, которая у вас на картинке ???
0
|
|
|
Модератор
|
|||
| 04.09.2014, 17:38 | |||
|
0
|
|||
|
|
|
| 04.09.2014, 17:41 [ТС] | |
|
... да уж.., для меня это новость, значит среда VBA, не только глючная,
но ещё и отстойная в плане, того что не у всех контролов можно увидеть хэндл придётся это учесть.. найти в себе мужество и смириться с этим фактом
0
|
|
|
|
|||||||
| 04.09.2014, 18:05 [ТС] | |||||||
|
не смогу реализовать более гибкое управление, ..как вариант придется делать свои с помощю CreateWindows.., ..запускать их милионным способом, и управлять Добавлено через 12 минут Для тех кто не понял
0
|
|||||||
|
Модератор
|
||||
| 04.09.2014, 18:07 | ||||
|
Добавлено через 36 секунд
0
|
||||
|
|
||
| 04.09.2014, 18:27 [ТС] | ||
(весь мир глючный ..шутка )Добавлено через 8 минут The trick, может не в тему, события вообще никак себя не показывают если создать контролы как у меня, как можно там чтото инициализировать подскажи, на примере моего кода в 16 посте Добавлено через 8 минут Можно собственно вот как сделать создать несколько классов, в которых будут реализованны события и свойства компонентов, события отлавливать через хуки.. и посылать сообщения через PostMessage
0
|
||
|
Модератор
|
|
| 04.09.2014, 18:27 | |
|
Вот пример https://www.cyberforum.ru/blog... g2067.html
Органы управления уведомляют родителя посредством WM_COMMAND, WM_NOTIFY для некоторых контролов, ну и конечно стандартные сообщения WM_LBUTTONDOWN, WM_KEYDOWN, WM_CHAR, WM_PAINT ... много их.
1
|
|
|
|
||||||||||||
| 04.09.2014, 19:35 [ТС] | ||||||||||||
|
Спасибо что ты мне помогаеш, (признаюсь.. не ожидал.. )
Добавлено через 3 минуты
константе Добавлено через 13 минут Хотя.. можно всё разузнать если про-мониторить каждую но это очень нудно Добавлено через 15 минут Есть еще идея ! раз уж у меня есть класс, для отлова оконных сообщений значит мне нужно сделать класс в котором будут все возможные события
ловить их уже в форме UserForm Добавлено через 23 минуты Вот как должно всё работать, я скомпилировал эксешник со своими классами на уровне одного проекта для внутреннего использования и вот как там чётко всё работает.. смотри(..те) Кликните здесь для просмотра всего текста
Скомпилированная программа ТЭСТ.rar (15.0 Кб)
Добавлено через 4 минуты Одно но!, на VBA такое сделать невозможно
0
|
||||||||||||
| 04.09.2014, 19:35 | |
|
Помогаю со студенческими работами здесь
20
Как получить handle формы? Как получить handle дочернего элемента если функция вызывается по событию? Как из дочерней формы получить доступ к элементу управления родительской формы Получить handle элемента Как получить доступ к элементам управления другой формы Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: реализовать программный контроль на предмет проведения документа. . .
|
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
|
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение:
DISM / Online / Add-Capability / CapabilityName:WMIC~~~~
Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
|
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: при создании документов установить период списания автоматически. . .
|
|
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2.
Задача: вывести данные из ТЧ нетипового документа. . .
|
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению.
На форме документа создается. . .
|
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
|
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
|