Форум: "WinAPI";
Текущий архив: 2004.04.25;
Скачать: [xml.tar.bz2];
ВнизRegisterWindowMessage Найти похожие ветки
← →
Talla2k © (2004-02-16 22:55) [0]Предположим в двух программах имеется следующий код uu:=RegisterWindowMessage("Lamer").
Соответственно,одна из программ передает сообщение так
SendMessage(findwindow("Lamerclass","LAMO"),uu,0,0);
Ну а теперь собственно вопрос:
как написать обработчик на посылаемое сообщение,т.е. нужно предположим узнать что-же прислала другая программа?
Т.е. значения WParam и LParam?
З.Ы. Как работать с пользовательскими сообщениями,я знаю!
const _mymessage = wm_user+80;
..
private
procedure MyMessage(var Msg:TMessage);message _mymessage;
..
procedure TForm1.MyMessage(var Msg:TMessage);
begin
label1.caption:=inttostr(Msg.Lparam);
Label2.caption:=inttostr(Msg.Wparam);
end;
А вот из этого переделать для RegisterWindowMessage не получается.
← →
Almaz © (2004-02-17 00:40) [1]
> А вот из этого переделать для RegisterWindowMessage не получается.
А из этого и не получится, для случая с RegisterWindowMessage придется перекрыть оконную функцию формы. Что вроде:
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
...
private
procedure WndProc(var Message: TMessage); override;
...
end;
...
var
WM_MYUSERMESSAGE: Cardinal;
...
procedure TForm1.FormCreate(Sender: TObject);
begin
WM_MYUSERMESSAGE := RegisterWindowMessage("MyMessage");
...
end;
procedure TForm1.WndProc(var Message: TMessage);
begin
if Message.Msg = WM_MYUSERMESSAGE then
begin
... Обработчик сообщения ...
end else
inherited WndProc(Message);
end;
Удачи.
← →
Talla2k © (2004-02-17 00:55) [2]Спасибо!
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2004.04.25;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.033 c