![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
WM_NCHITTEST [D3, D5, Win95/98, Win2k]
rhf © (2002-08-06 18:59:00)Если сделать перетаскивание формы за клиентскую область (HTCLIENT менять на HTCAPTION), то она перестает реагировать на стандартные события мыши (onClick и т.п.), что вполне логично....
т.е. теперь попап-меню само не появляеться, а надо :)
можно обрабатывать WM_NCRBUTTONUP и показывать меню...
вот только как узнать, что событие произошло в клиентской области, а не на кнопке минимизации например?
координаты проверять? или есть другое решение?
Ученик (2002-08-07 09:04:00) [1]>DAO (06.08.02 22:10)
Прикольное развитие HTLEFT, HTRIGHT, HTBOTTOM, HTTOP, .... :)
rhf (2002-08-06 23:31:00) [2]2 Gonza, весьма интересный magic number, с ним намного красивее чем просто с SC_MOVE... :)
всем спасибо.
DAO (2002-08-06 22:10:00) [3]Вот тоже кусок кода который обычно я использую! Можешь у каждого контрола на событии MouseDown написать будет ли он таскать форму или нет!
if ssLeft in Shift then
begin
ReleaseCapture;
SendMessage(Handle, WM_NCLBUTTONDOWN, HTCAPTION, 0);
end;
удачи...
Gonza (2002-08-06 20:51:00) [4]
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
const
SC_DragMove = $F012; { a magic number }
begin
ReleaseCapture;
perform(WM_SysCommand, SC_DragMove, 0);
end;
Из FAQ.
Будет и таскаться и события обрабатывать
rhf (2002-08-06 20:05:00) [5]а какая разница видно его или нет, проблема-то все равно останеться...........
Skier (2002-08-06 19:05:00) [6]>rhf
Ежели ты за клиентскую часть окно таскаешь, может
тебе и Caption не нужен ? Или он обязателен ??