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

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

Перемещение окна, написанного на чистом апи, за клиентскую област [D5, D6, Win95/98, WinME, NT4, WinXP]


K.o.Z ©   (2002-10-06 22:40:00) 

подскажите, как очуществить перетаскивание окна написанного на чистом API

способ описаный ниже не предлагать, у меня окно
отваливается от курсора, при быстром перемещении мыши

wm_LButtonDown:
begin
Xpos1 := LOWORD(lParam);
Ypos1 := HIWORD(lParam);
move:= true; //можно перетаскивать
end;
wm_MouseMove:
begin
if (move) then
begin
XPos2 := LOWORD(lParam);
YPos2 := HIWORD(lParam);
Left:= Left + (Xpos2 - Xpos1);
Top:= Top + (Ypos2 - YPos1);
MoveWindow(Window,Left,Top,nWidth,nHeight,True);
end;
end;
wm_LButtonUp:
begin
move:= false;
end;


K.o.Z   (2002-10-07 12:58:00) [1]

2 rhf

способ вполне подошел, огромное спасибо


Юрий Зотов   (2002-10-07 01:32:00) [2]

Либо обрабатывать WM_NCHITTEST c возвратом HTCAPTION вместо HTCLIENT, когда это требуется.


rhf   (2002-10-07 00:54:00) [3]

WM_LBUTTONDOWN:
begin
releaseCapture;
sendMessage(handle,WM_SYSCOMMAND,SC_DRAGMOVE,0);
//или sendMessage(handle,WM_NCLBUTTONDOWN, HTCAPTION, 0);
end;

ЗЫ SC_DRAGMOVE=$F012


Наверх

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