![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Drag&Drop с помощью TWMNChitTest [D6, WinXP]
DeepProg © (2005-05-28 14:31:00)Данная конструкция
procedure tfmNIMMain.WMNCHitTest(var M: TWMNCHitTest);
begin
inherited;
if M.Result = htClient then M.Result := htCaption
end;
не приводит к желаемому результату. Т.е. 0 эмоций со стороны приложения. Breakpoints + WinSight32 показали, что WM_CHITTEST вышеприведенным кодом обрабатывается, только форма не пытается никуда сдвинуться.
Эта оработка вообще работает (а может она "осезависима") или придется обрабатывать события работы с мышью?
Marser (2005-05-28 16:47:00) [1]
> меня не прокатило
Это зависит от того, куда ты её вставил. нужно было в оконную функцию.
DeepProg (2005-05-28 16:39:00) [2]Я дольше ныл. С мышью все просто и аккуратно.
> sendmessage(self.handle, msg, wparam, lparam)
У меня не прокатило (WinSight не регистрировал никаких сообщений, но и ошибок не вылезало...).
И в любом случае придется обрабатывать
WM_SETCURSOR, WM_MOUSEMOVE, WM_NCHITTEST, WM_MOVING.
Т.е. на 1 процедуру больше, чем методом OnMouseDown, OnMouseMove, OnMouseUp ;)
Marser (2005-05-28 16:13:00) [3]
> rOOse © (28.05.05 16:03) [5] [Новое
>сообщение][Ответить]
>
>> 4] TUser © (28.05.05 15:58)
>
> Вот тут поподробнее плз.
В обработчик панели:
sendmessage(self.handle, msg, wparam, lparam)
или
Panel1.perform(self.handle, msg, wparam, lparam)
rOOse (2005-05-28 16:03:00) [4]
> 4] TUser © (28.05.05 15:58)
Вот тут поподробнее плз.
TUser (2005-05-28 15:58:00) [5]Просто пересылай форме те сообщения, которые придут к панели
DeepProg (2005-05-28 15:28:00) [6]Поймал баг - у меня Panel на всю форму растянута - она и мешает.
Все-таки придется возиться с мышью...
DeepProg (2005-05-28 14:53:00) [7]Нет, там написано WM_NcHit Test :)
Type
TForm1 = class(TFrom)
...
private
{ Private declarations }
procedure WMNCHitTest(var M : TWMNCHitTest); message
WM_NCHITTEST;
...
TUser (2005-05-28 14:47:00) [8]??
А в описании класса написано message WM_NcHitHest ?