Sashka |
Отправлено: 14.12.2005, 09:37 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 26
|
Люди! Объяните балбесу, есть ли связь между дескриптором окна hwnd и указателем Sender.
Просто когда мы пользуемся фунцией API GetWindow() или FindWindow(), то в качестве параметра указываем имя класса, поэтому возникает подозрение, что hwnd как-то связан с этим классом, а значит через hwnd можно воспользоваться параметрами этого класса.
Возможно я ошибаюсь...
может кто-нить объяснит? |
|
Gal |
Отправлено: 14.12.2005, 11:50 |
|
Станционный диспетчер
Группа: Участник
Сообщений: 124
|
function GetClassName(Wnd: HWnd; ClassName: PChar; MaxCount: Integer): Integer;
Считывает имя класса окна.
Паpаметpы:
Wnd: Идентификатоp окна.
ClassName: Буфеp для пpиема имени класса.
MaxCount: Размеp буфеpа
Возвpащаемое значение:
Фактическое число скопиpованных символов; 0 — если ошибка. |
|
Sashka |
Отправлено: 14.12.2005, 12:08 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 26
|
Я немного не то имел в виду. Наверно я очень путанно выразился...
Имя класса мне заранее известно, например TEdit. Я с нашел дескриптор окна с этим классом и пытаюсь считать от туда данные. Судя по тому что Spy++ и WS32 считывают данные, значит как то это сделать можно...
Вот я и попытался увязать найденный hwnd с указателем Sender, который посылается в функции при разных событиях. Возможно я по незнанию чего то путаю, но какая то связь должна быть |
|
Guest |
Отправлено: 14.12.2005, 12:47 |
|
Не зарегистрирован
|
hwnd это всего лишь одно из полей класса TWinControl (Handle). То что вы задумали возможно (да и то под сомнением) реализовать только в рамках одного приложения. Легальный способ получения информации — сообщения. |
|
** GIZMO |
Отправлено: 14.12.2005, 14:51 |
|
Не зарегистрирован
|
QUOTE (Sashka @ 14/12/2005, 09:37) | Люди! Объяните балбесу, есть ли связь между дескриптором окна hwnd и указателем Sender.
Просто когда мы пользуемся фунцией API GetWindow() или FindWindow(), то в качестве параметра указываем имя класса, поэтому возникает подозрение, что hwnd как-то связан с этим классом, а значит через hwnd можно воспользоваться параметрами этого класса.
Возможно я ошибаюсь...
может кто-нить объяснит? |
Класс VCL и "оконный" класс не одно и тоже. Перед тем как создать окно (hwnd) Ты должен зарегестрировать его класс в системе (VCL делает это за тебя). "Оконный" класс это структурка которая хранится где-то в системе и служит для создание окон заданного типа. Вот этот "класс окна" и передается в FindWindow и никакой связи с Sender не имеет. Более того для стандартных контроллов эдиты, кнопки и т.п. "оконные" классы определены системой (edit и т.п.). Т.е. найдя hwnd Ты VCL-ных св-в считать не сможешь (если Ты это имел ввиду), а текст, стиль, координаты и т.п. через API — пожайлуста.
|
|