![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
SendMessage [D6, WinXP]
FRecon © (2002-06-30 01:43:00)Люди, а поясните пожалста, что за ф-ия SendMEssage и как ей ползоваться?
Игорь Шевченко (2002-07-01 17:33:00) [1]MBo © (01.07.02 17:07)
> сообщение, посланное SendMessage, НЕ ставится в общую очередь
> Windows, а посылается непосредственно указанному элементу
Оно ставится в Send-очередь, если послано окну другого потока.
MBo (2002-07-01 17:07:00) [2]SendMessage посылает сообщение ЛЮБОМУ окну (указывется его handle), в том числе и оконным элементам своей формы/программы (тогда например, edit1.handle). Его параметры - window handle, номер сообщения (предопределенные константы, например, WM_PAINT, или пользовательские, определяемые программистом, например, WM_USER+100), и два числа, несущие разную функц. нагрузку в зависимости от типа сообщения, в некоторых они игнорируются, в некоторых передается, например, номер строки ListBox и т.п., или через них может передаваться адрес строки или сложной структуры
(с приведением к Integer). Главное отличие от PostMessage - сообщение, посланное SenMessage, НЕ ставится в общую очередь Windows, а посылается непосредственно указанному элементу, т.е. обрабатывается сразу, без задержки, за счет этого может вернуть результат, однако есть сообщения, которые обрабатываются ТОЛЬКО при выборе из очереди. Аналог в VCL- TWinControl.Perform
DeepProg (2002-07-01 16:27:00) [3]Эта функция используется для управления окном внешнего приложения. Ее действие заключается в отправке команды этому окну(Msg:Cardinal). Пример:
SendMessage(FindWindow("SciCalc","Калькулятор"),WM_CLOSE,0,0);- функция отправляет окну приложения Windows (Калькулятору) команду "закрыть".