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为设定区域)这样你就可以去掉普通窗口那种蓝色的标题栏,换一个比较好看一点的)
博客介绍了去掉普通窗口蓝色标题栏的方法。先对WM_NCHITTEST做消息映射,给出了相应代码示例。然后在消息处理函数中添加代码,通过判断鼠标位置和设定区域,改变消息结果,从而实现去掉蓝色标题栏,换成更美观样式。

被折叠的 条评论
为什么被折叠?



