如何实现移动一个没有标题栏的窗口???
.h文件中加入两个变量iX,iY。
private: // User declarations
int iX,iY;
void __fastcall TForm1::FormMouseDown(TObject *Sender, TMouseButton Button,
TShiftState Shift, int X, int Y)
{
iX=X;
iY=Y;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormMouseMove(TObject *Sender, TShiftState Shift,
int X, int Y)
{
if(Shift.Contains(ssLeft))
{
Form1->Left=Form1->Left+X-iX;
Form1->=Form1->+Y-iY;
}
}
通过鼠标消息转换,
一、在窗体的头文件中声明WM_NCHITTEST消息的响应函数:
public://
MESSAGE void WMNCHitTest(TWMNCHitTest Message);
BEGIN_MESSAGE_MAP
MESSAGE_HANDLER(WM_NCHITTEST,TWMNCHitTest,WMNCHitTest);
END_MESSAGE_MAP(TForm);
二、在CPP文件中定义WMNCHitTest函数
void TForm1::WMNCHitTest(TWMNCHitTest &Msg)
{
TForm::Dispatch(&Msg);
if(Msg.Result ==HTCLITENT)
Msg.Result = HTCAPTION;
}
//此方法可实现与有标题栏同样的效果,没有任何区别。
在MouseDown中
if(Button==mbLeft)
{
ReleaseCapture();
SendMessage(this->Handle,WM_SYSCOMMAND,SC_MOVE+HTCAPTION,0);
}