Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > Модификация формы


Автор: bent 17.4.2006, 09:53
Здравствуйте.
После задания свойства TForm::BorderStyle = bsNone невозможно передвигать окно с помощью мышки. Как же реализовать такую возможность? smile  Может, кто нибудь делал? 

Автор: Ctrl_Alt_Del 17.4.2006, 10:38
В *.h добавь переменную TPoint MousePoint;
Код

void __fastcall TForm1::FormMouseDown(TObject *Sender, TMouseButton Button,
      TShiftState Shift, int X, int Y)
{
GetCursorPos(&MousePoint);
SetCapture(Handle);
}
//---------------------------------------------------------------------------

void __fastcall TForm1::FormMouseUp(TObject *Sender, TMouseButton Button,
      TShiftState Shift, int X, int Y)
{
ReleaseCapture();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormMouseMove(TObject *Sender, TShiftState Shift,
      int X, int Y)
{
if(Shift.Contains(ssLeft))
{
     TPoint point;
     GetCursorPos(&point);
     Left = Left + point.x - MousePoint.x;
     Top = Top + point.y - MousePoint.y;
     MousePoint = point;
}
}
//---------------------------------------------------------------------------
 

Автор: _hunter 17.4.2006, 10:51
http://forum.vingrad.ru/index.php?showtopic=40778
http://forum.vingrad.ru/index.php?showtopic=4344 

Автор: Ctrl_Alt_Del 17.4.2006, 11:19
_hunter, хехе точно..  smile 
Код

ReleaseCapture();
Perform(WM_SYSCOMMAND,0xF012,0);
 

Автор: bent 18.4.2006, 15:00
Спасибо за помощь smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)