Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.01.13;
Скачать: CL | DM;

Вниз

WM_NCHITTEST   Найти похожие ветки 

 
_юзер_   (2003-12-26 14:24) [0]

Хочу реализовать следующее: на форме есть панель. надо чтобы она вела себя аналогично title bar-у формы, т. е. чтобы можно было за неё потянуть форму.
делаю это так:

procedure TForm1.WMNCHitTest(var M: TMessage);
var Ctrl: TControl;
begin
Ctrl:=ControlAtPos(ScreenToClient(SmallPointToPoint(TWMNCHitTest(M).Pos)), false);
if (Ctrl<>nil) and (Ctrl.Name=Panel1.Name)
then M.Result:=HTCAPTION
else inherited;
end;

если вместо панели использовать любой не TWinControl, то всё работает. В случае TWinControl-а WM_NCHITTEST перехватывает сам винконтрол и до формы это сообщение не доезжает.
Как это побороть?


 
Романов Р.В. ©   (2003-12-26 14:42) [1]

Написать потомка панели или подменить ее WindProc


 
_юзер_   (2003-12-26 14:54) [2]

>>подменить ее WindProc
каким образом? если можно, хотелось бы код подменённого WndProc-а
увидеть


 
Романов Р.В. ©   (2003-12-26 15:25) [3]

http://clubpro.spb.ru/ubb/Forum18/HTML/000022.html
В самом низу


 
_юзер_   (2003-12-26 15:42) [4]

как свой wndproc написать я и так знаю. мне надо, чтобы WM_NCHITTEST доезжал до wndproc-а формы, когда у меня мышка над панелью находится.


 
DVM ©   (2003-12-26 16:37) [5]

Может так проще:

procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
ReleaseCapture;
Form1.Perform(WM_SYSCOMMAND, $F012, 0);
end;


 
_юзер_   (2003-12-26 16:57) [6]

2DVM:
как раз то, что надо. а что это за команда $F012? у неё имя какое-нибудь есть?
$F010 = SC_MOVE - только это чуть-чуть не то


 
Бушин Сергей ©   (2003-12-26 17:00) [7]

Магическое число


 
_юзер_   (2003-12-26 17:21) [8]

2Бушин Сергей:
отличная шутка, я и сам так пошутить люблю на досуге. сам придумал или подсказал кто? если у тебя есть что по смыслу написать, то напиши, а если потрепаться хочешь - тут отдельный форум есть


 
DVM ©   (2003-12-26 17:24) [9]


> _юзер_ (26.12.03 17:21) [8]

Ты зря так. Эти числа (а это не единственное) на самом деле получили прозвища "магических", потому как нигде не описаны в документации, но все ими пользуются.


 
_юзер_   (2003-12-26 17:30) [10]

я, например, про вышеупомянутые числа ничего не знал до этого момента, поэтому [7] выглядело со стороны как издевательство.
2DVM:
а где можна достать какаю-нибудь информацию про эти "магические"
числа?



Страницы: 1 вся ветка

Текущий архив: 2004.01.13;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.017 c
1-37723
Agent[007]
2003-12-28 08:19
2004.01.13
Два в одном


14-37878
Думкин
2003-12-22 08:05
2004.01.13
С днем рождения! 22 декабря.


3-37545
ririsha
2003-12-13 21:31
2004.01.13
как связаться с FireBird из Delphi?


4-37991
Dunmer
2003-11-10 11:31
2004.01.13
Как оптимизировать Ресолв ДНС


1-37640
Makhanev A.S.
2003-12-26 18:56
2004.01.13
Наследование форм: EResNotFound