![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Вопрос по сообщениям [D7, WinXP]
Dmitry_177 © (2006-09-29 16:26:00)при использовании VCL сообщения можно так ловить:
procedure WmCopyData(var Message: TMessage); message WM_COPYDATA;
...
procedure TCharLogReceiver.WmCopyData(var Message: TMessage);
begin
...
Message.Result := 1;
end;
Вопрос в том, зачем иногда в конце обработки делают такое присваивание Message.Result := 1;? В данном случае с WM_COPYDATA...
А еще как такое присваивание сделать(если нужно) если обрабатвать без использования VCL, на чистом API?
function WindowProc(Window: HWnd; Message, WParam: Word; LParam: LongInt): LongInt; stdcall;
begin
case Message of
WM_COPYDATA: begin
....
как здесь сделать такое присваивание?
end;
end;
Dmitry_177 (2006-10-01 17:50:00) [1]Может так надо делать?
function WindowProc(Window: HWnd; Message, WParam: Word; LParam: LongInt): LongInt; stdcall;
begin
Result := 0;
case Message of
WM_COPYDATA: begin
....
Result := 1;
end
else
Result := DefWindowProc (Window, Message, WParam, LParam);
end;
Dmitry_177 (2006-10-01 17:04:00) [2]Подскажите тогда еще мне вот что:
Result := DefWindowProc (Window, Message, WParam, LParam); --> Зачем мы делаем это присваивание, в конце, если Result равен 0 (изначально) или 1?
function WindowProc(Window: HWnd; Message, WParam: Word; LParam: LongInt): LongInt; stdcall;
begin
Result := 0;
case Message of
WM_COPYDATA: begin
....
Result := 1;
end;
Result := DefWindowProc (Window, Message, WParam, LParam);
end;
Leonid Troyanovsky (2006-09-30 11:39:00) [3]
> Dmitry_177 (29.09.06 17:29) [2]
> А для чего это присваивание вообще надо? Объясните пожалуйста.
If the receiving application processes this message, it should return TRUE; otherwise, it should return FALSE
--
Regards, LVT.
Dmitry_177 (2006-09-29 17:29:00) [4]А для чего это присваивание вообще надо? Объясните пожалуйста...
Сергей М. (2006-09-29 16:39:00) [5]
> как здесь сделать такое присваивание?
Result := 1;