移动窗口的问题
鸵鸟 2002-05-17 11:43:35 实现BorderStyle = bsNone 的form 用鼠标拖动过程
mousePoint_x,mousePoint_y 是全局变量
void __fastcall TfrmView::FormMouseDown(TObject *Sender,
TMouseButton Button, TShiftState Shift, int X, int Y)
{
mousePoint_x = X;
mousePoint_y = Y;
}
//---------------------------------------------------------------------------
void __fastcall TfrmView::FormMouseMove(TObject *Sender, TShiftState Shift,
int X, int Y)
{
if (GetAsyncKeyState(VK_LBUTTON)<0){
Left+=X-mousePoint_x ;
Top+=Y-mousePoint_y;
}
}
//---------------------------------------------------------------------------
在send WM_LBUTTONDOWN 消息时,有时窗口会莫名其妙的跳动
用spy++ 察看的结果
.......................................
P WM_MOUSEMOVE fwkeys:0000 xPos:68 yPos:217
P WM_LBUTTONDOWN fwkeys:MK_LBUTTON xPos:241 yPos:173
.......................................
其中xPos yPos 均为client 的坐标
请问我该怎样修正程序??