在Delphi中当鼠标点击窗体时让系统认为被点的是标题兰?(30分)

  • 主题发起人 主题发起人 Sword_Sharp
  • 开始时间 开始时间
S

Sword_Sharp

Unregistered / Unconfirmed
GUEST, unregistred user!
在Delphi中当鼠标点击窗体时让系统认为被点的是标题兰?
 
private
; ; { Private declarations }
; ; procedure WMNCHITTEST(VAR M:TWMNCHITTEST); message wm_nchittest;

implementation

{$R *.DFM}

procedure TForm1.WMNCHITTEST(var M:TWMNCHITTEST);
begin
; inherited;
; if M.Result =htClient then
; M.Result :=htCaption;
end;
 
private
; procedure WMNCHitTest(var M: TWMNCHitTest); message wm_NCHitTest;
; ;...
; end;

procedure TForm1.WMNCHitTest(var M: TWMNCHitTest);
; ; begin
; ; ;inherited;
; ; ;if M.Result = htClient then M.Result := htCaption;
; ; end;

或载extrapack控件,里面有epmoveform控件可达到你要的效果
 
卷起千堆雪tyn, :
谢谢你!可以讲讲原理吗?我是个菜鸟;
 
当你点击窗体时,发送wm_nchittest消息,如果是点在客户区,就误以为是点击在标题栏。
建议多看看WINDOWS的消息处理机制。OK?
 
大富翁论坛上有相关资料吗?
 
这样为何不可以?
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
; Shift: TShiftState; X, Y: Integer);
begin
; SendMessage(Handle, WM_NCHITTEST, 0, 2570);
end;
 
这样是不可以的
你对卷起千堆雪tyn说的还不太明白
是要去改变WM_NCHITTEST返回的结果,而不仅仅是调用WM_NCHITTEST
 
后退
顶部