C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Вопрос о связи дескриптора окна с указтелем Sender
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, который посылается в функции при разных событиях. Возможно я по незнанию чего то путаю, но какая то связь должна быть wink.gif
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 — пожайлуста.

Вернуться в Вопросы программирования в C++Builder