Главная страница
    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.46 MB
Время: 0.014 c
1-37653
r00t
2003-12-26 19:59
2004.01.13
Полное удаление с файлов?


8-37808
Андрій
2003-09-11 16:33
2004.01.13
Тип графического файла


7-37963
h0use
2003-10-28 17:05
2004.01.13
Не инсталлируется сервис по /install


3-37506
Andrey V.
2003-12-15 14:41
2004.01.13
Нужен


9-37487
NailMan
2003-06-21 12:25
2004.01.13
Конструкция ресурсного мэнеджера в 3Д-игре





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский