Форум: "WinAPI";
Текущий архив: 2002.11.25;
Скачать: [xml.tar.bz2];
ВнизПоиск контрола Найти похожие ветки
← →
arcad (2002-10-11 15:20) [0]Уважаемые мастера.
Есть в дельфях такая функция
function FindControl(Handle: HWnd): TWinControl;
Подскажите как сделать тоже самое с помощь WinAPI, плииизз.
← →
k (2002-10-11 15:35) [1]WinAPI ничего не знает о TWinControl, и сделать тоже самое ему не подсилу....
о, кстати, мы родились с тобой в 1 день, только я в 80-м году:)
← →
MBo (2002-10-11 15:56) [2]>как сделать тоже самое
Что сделать????
Handle однозначно определяет окно.
← →
ZrenBy (2002-10-11 15:57) [3]может GetNextDlgGroupItem или подобные подойдут ?
← →
arcad (2002-10-11 15:59) [4]
>k
> о, кстати, мы родились с тобой в 1 день, только я в 80-м
> году:)
Очень рад за нас!
Возвращаясь к теме вопроса, мне фунция WinAPI GetFocus() возвращает хендл контрола. Как мне с помощью того же WinAPI определить что это за контрол и если это TEdit, выполнить над что нужно?
← →
arcad (2002-10-11 16:01) [5]
> MBo © (11.10.02 15:56)
> >как сделать тоже самое
> Что сделать????
> Handle однозначно определяет окно.
Сорри, неправильно сформулировал вопрос. Как говорится на любой вопрос - любой ответ.
← →
arcad (2002-10-11 16:08) [6]
> MBo ©
Нужно получить по хендлу сам контрол.
← →
ZrenBy (2002-10-11 16:11) [7]GetClassName
← →
arcad (2002-10-11 16:21) [8]
> ZrenBy © (11.10.02 16:11)
> GetClassName
Ну имя получу, а сам объек-то как? Или я чего-то недопонимаю, что скорее всего?
← →
ZrenBy (2002-10-11 16:27) [9]>>мне фунция WinAPI GetFocus() возвращает хендл контрола.
>>Как мне с помощью того же WinAPI определить что это за контрол
>>и если это TEdit, выполнить над что нужно?
Это твой вопрос ?
← →
arcad (2002-10-11 16:40) [10]
> ZrenBy © (11.10.02 16:27)
> >>мне фунция WinAPI GetFocus() возвращает хендл контрола.
> >>Как мне с помощью того же WinAPI определить что это за
> контрол
> >>и если это TEdit, выполнить над что нужно?
>
> Это твой вопрос ?
Да мой.
← →
Song (2002-10-11 16:40) [11]Объект идентифицируется хэндлом, т.е. другими словами считайте что хэндл это и есть объект.
← →
arcad (2002-10-11 16:48) [12]
> Song © (11.10.02 16:40)
> Объект идентифицируется хэндлом, т.е. другими словами считайте
> что хэндл это и есть объект.
Ну тупой я люди, извините.
Повторяю как мне объет-то сам получить, точнее доступ к его полям и методам?
Я ж не могу написать TEdit(ThisHandle).Text:="";
Надо же сам объек-то получить,
например так TEdit(FindControl(ThisHandle)).Text:="";
Вот я и спрашиваю как мне этот самый FindControl(ThisHandle) сделать только с помошью WinAPI?
← →
Толик (2002-10-11 17:51) [13]>>как мне этот самый FindControl(ThisHandle) сделать только с помошью WinAPI?
НИКАК!!!
WnApi НИЧЕГО не знает о ни об объектах VCL, ни о Делфях, ни о Вас как программисте. Вообще ничего. TWinControl и его наследники являвляются просто красивой оболочкой вокруг объектов Windows. Все объекты в Виндах характеризуются уникальным дескриптором. называемым handle. Вот по нему можно искать объекты с помощью WinApi, но и результат поиска буде тоже объект WinApi, а не VCL!!!
← →
Song (2002-10-11 22:19) [14]2arcad © (11.10.02 16:48)
Вы поймите что ни TEdit ни его свойства Text ни одного его метода в АПИ нет. Это VCL. Вы же хотите АПИ? Значит забудьте о классе TEdit как о таковом. Все программы в ОС работают через сообщения. Например, аналог VCLного TEdit.Text в АПИ - это WM_SETTEXT и т.д.
← →
gamlet (2002-10-13 02:33) [15]если тебе нужно текст записать в ТЕдит то это можно сделать так:
var mytext:String;
..............
SendMessage(Handle{окна Едита или св-во Handle TEdit"a}, WM_SETTEXT, 0, PChar(mytext));
вобщем посмотри хелп по WM_SETTEXT и WM_GETTEXT....
удачи......................
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2002.11.25;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.008 c