![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Окошко на winapi [D5, D6, Win95/98, WinME, NT4, Win2k, WinXP]
maker © (2002-11-29 21:00:00)Мне необходимо перетаскивать окошко на winapi за его любую область...
Кусок кода:
function WindowProc (Window: HWND; Message, WParam: Cardinal;
LParam: Cardinal): Longint; stdcall;
begin
case Message of
WM_MOUSEMOVE:
begin
//Если я правильно думаю, то...
//MoveWindow(где добыть параметры)...
//Но шо-то у мя нифига не получается... :(
end;
...
apay (2002-11-30 17:43:00) [1]> Evgeny ©
говоришь обманывать не надо:
Result := htCaption; - и есть обман.
maker (2002-11-30 09:56:00) [2]всё работает, спасибо!...
Evgeny (2002-11-30 07:39:00) [3]Обманывать не надо - это вполне стандартная функция.
var
aRect: TRect;
pt : TPoint;
...
WM_NCHITTEST:
begin
Result := htClient;
pt.x := LoWord(lParam);
pt.y := HiWord(lParam);
ScreenToClient(Wnd, pt);
aRect := {твой Rect};
if PtInRect(aRect, pt) then // Если мышь там где предпологалось, то тащим окно
Result := htCaption;
Exit;
end;
...
apay (2002-11-29 22:44:00) [4]просто обмани винду и все:
...
case Message of
...
WM_NCHITTEST: begin
Result := HTCAPTION;
Exit;
end;
...
end;
...