1、先对WM_NCHITTEST做消息映射。
BEGIN_MESSAGE_MAP
MESSAGE_HANDLER(WM_NCHITTEST,TMessage,WMNCHitTest)
END_MESSAGE_MAP(TForm)
2、然后在消息处理函数中增加如下代码:
void __fastcall TDragForm::WMNCHitTest(TMessage &Msg)
{
int xPos,yPos;
xPos = LOWORD(Msg.LParam);
yPos = HIWORD(Msg.LParam);
TPoint Pxy;
Pxy=Point(xPos,yPos);
Pxy=ScreenToClient(Pxy);
bool mDrag1=PtInRect(&(Shape1->BoundsRect),Pxy);
if (GetAsyncKeyState(VK_LBUTTON)<0&&mDrag1)
Msg.Result = HTCAPTION;
else
Msg.Result = HTCLIENT;
}
(Shape1->BoundsRect为设定区域)这样你就可以去掉普通窗口那种蓝色的标题栏,换一个比较好看一点的)