Главная страница
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.013 c
1-37645
Mike_forewer
2003-12-27 02:46
2004.01.13
Resource Editor


14-37904
Думкин
2003-12-21 07:23
2004.01.13
С днем рождения! 21 декабря.


1-37644
Hyboid
2003-12-25 19:12
2004.01.13
DLL Strings


9-37490
Omar2002
2003-06-18 15:19
2004.01.13
Сетевая игра в DelphiX


1-37630
Cyberjack
2003-12-27 19:18
2004.01.13
DHTMLEdit