Форум: "WinAPI";
Текущий архив: 2002.11.18;
Скачать: [xml.tar.bz2];
ВнизКак узнать handle окна, пославшего сообщение Найти похожие ветки
← →
sergio123 (2002-09-30 17:45) [0]Программа не VCLная. Есть что-то типа того:
MyMsg:=RegisterWindowMessage(MyMessage);
Сообщение посылается так:
SendMessage( HWND_BROADCAST,MyMsg,1234,1234);
Обрабатывается так:
function WindowProc(hWnd, uMsg, wParam, lParam: Integer): Integer; stdcall;
begin
Result := DefWindowProc(hWnd, uMsg, wParam, lParam);
if uMsg = WM_DESTROY then Halt;
if (uMsg = MyMsg) and (wParam = 1234) then
begin
...... тут нужен handle, кто его послал ...........
end;
end;
Как узнать handle окна, пославшего сообщение MyMsg?
← →
Zz_ (2002-09-30 18:22) [1]Так посылай его в lParam
← →
sergio123 (2002-09-30 18:36) [2]To Zz_
Ты мои мысли читаешь на расстоянии :)? Именно так я сейчас и делаю, но я просто думал есть какой-то лучший способ, предоставляемый самой операционкой. И к тому же если мне в lParam тоже какое-нибудь значение надо передать?
← →
Polevi (2002-09-30 18:42) [3]wParam и lParam все равно не хватит на все случаи
WM_COPYDAYA используй
← →
vidiv (2002-10-08 09:47) [4]А я делаю вот так:
type Trecdata=record
{тута всякой х...и}
end;
var a:TRecData;
begin
a:={....};
sendmessage(hwnd_broadcast,mymgs,handle,lparam(a));
end;
а в приемнике:
var b:TRecData;
begin
b:=TRecData(lparam);
{и юзай}
end;
← →
Polevi (2002-10-08 10:40) [5]>vidiv (08.10.02 09:47)
не надо давать дурных советов
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2002.11.18;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.013 c