C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Кто знает как вернуть Capture ?, ReleaseCapture это хорошо, только вот...
Red-Storm
Отправлено: 12.07.2005, 17:05


Не зарегистрирован







Нужно было тоскать компонент по форме, нашёл всеми любимый алгоритм с использованием ReleaseCapture и SysCom SC_DRAGMOVE. В OnMouseDown забил следующее :

//---------------------------------------------------------------------------
void __fastcall TForm1::Panel1MouseDown(TObject *Sender,
TMouseButton Button, TShiftState Shift, int X, int Y)
{
long SC_DRAGMOVE = 0xF012;

if (Button == mbLeft)
{
ReleaseCapture();
SendMessage(Panel1->Handle, WM_SYSCOMMAND, SC_DRAGMOVE, 0);
}
}
//---------------------------------------------------------------------------

Всё ничего, если бы после перехвата Capture, можно было бы вернуть его обратно, иначе код забитый в OnMouseUp :

//---------------------------------------------------------------------------
void __fastcall TForm1::Panel1MouseUp(TObject *Sender, TMouseButton Button,
TShiftState Shift, int X, int Y)
{
if (Button == mbLeft)
{
ShowMessage("Return Capture");
}
}
//---------------------------------------------------------------------------

Как-то не очнь хочит отробатываться, как это можно сделать sad.gif ???
Doga
Отправлено: 12.07.2005, 18:44


Мастер участка

Группа: Участник
Сообщений: 575



В библиотеке RxLib есть компонент RxWindowHook.

Вернуться в Вопросы программирования в C++Builder