Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Окошко на 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;
...


Наверх

Титульная страница Поиск, карта сайта Написать письмо