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

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

Перетаскивание формы за контрол на winapi [D7, WinXP]


Альберт ©   (2007-01-04 03:43:00) 

как этьо сделать?

поставить хук.
ждать WM_NCHITTEST.
и отправлять окну SendMessageм  (Wnd, WM_NCHITTEST, HTCAPTION, 0).

но не выходит...


Альберт   (2007-01-06 22:35:00) [1]

придумал решение

if TMsg(Pointer(lParam)^).message =  WM_LBUTTONDOWN then
   begin
   ReleaseCapture;
   SendMessage(GlobalData^.detectwnd, WM_NCLBUTTONDOWN, htCaption, 0) ;

   end;


Альберт   (2007-01-06 21:33:00) [2]

спасибо, но я именно через dll делаю.. другого выбора нет.. нужно ловить именно чужие определенные окна.. не свою форму..


Eraser   (2007-01-06 17:27:00) [3]

> [0] Альберт ©   (04.01.07 03:43)

никаких хуков не надо!
достаточно просто обрабатывать в OnMouseDown нужного контрола выполнять код
const
 SC_DragMove = $F012; {a magic number}
begin
 ReleaseCapture;
 Perform(WM_SysCommand, SC_DragMove, 0);


Альберт   (2007-01-05 22:22:00) [4]

в окне флешка стоит, и за нее пытаюсь переместить окно.. и ни фига. вообще это возможно сделать?


Наверх

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