procedure TForm1.WMNCHitTest(var Msg : TWMNCHitTest); file:// WMNCHitTest过程与WMNCPaint过程实现方法相同,该过程在光标移动或鼠标按钮被按下或鼠标按钮被释放时调用 begin inherited; with Msg do if PtInRect(CaptionBtn, Point(XPos - Left, YPos - Top)) then Result := htCaptionBtn;//判定鼠标所在位置是否在新按钮的矩形范围内,假如在返回新按钮的标识值 end;
procedure TForm1.WMNCLButtonDown(var Msg : TWMNCLButtonDown); // WMNCLButtonDown过程与WMNCPaint过程实现方法相同,当光标处于窗口非客户区范围内鼠标左键被按下时调用该过程 begin inherited; if (Msg.HitTest = htCaptionBtn) then ShowMessage('你点击的是标题栏上的新按钮'); file://判定被点击的是否是新按钮,假如是显示上面的信息,在这里你可以按你的需要编写程序代码 end; procedure TForm1.FormResize(Sender: TObject); begin Perform(WM_NCACTIVATE, Word(Active), 0); file://假如窗口大小改变则重画标题栏 end; end.