拦截标题栏的右击事件

字体大小: 中小 标准 ->行高大小: 标准
拦截WM_NCRBUTTONDOWN;即可!

如果只想拦截在form右边三个按钮上的右击事件,则应该拦截WM_NCRBUTTONUP!

private

procedure WMNCRBUTTONDOWN(var msg: TMessage); message WM_NCRBUTTONDOWN;

procedure WMNCLBUTTONDOWN(var msg: TMessage); message WM_NCLBUTTONDOWN;

procedure WMNCLBUTTONDBLCLK(var msg: TMessage); message WM_NCLBUTTONDBLCLK;

end;

 

 

implementation

 

procedure TForm1.WMNCRBUTTONDOWN(var msg: TMessage);

begin

if msg.wParam = HTCAPTION then Caption := 'Right Click!';

// Message.Result := 0; {to ignore the message}

inherited;

end;

procedure TForm1.WMNCLBUTTONDOWN(var msg: TMessage);

begin

if msg.wParam = HTCAPTION then Caption := 'Left Click!';

// Message.Result := 0; {to ignore the message}

inherited;

end;

procedure TForm1.WMNCLBUTTONDBLCLK(var msg: TMessage);

begin

if msg.wParam = HTCAPTION then Caption := 'Double Click!';

// Message.Result := 0; {to ignore the message}

inherited;

end;

*********************************

Simple method from Nail

...

interface

TForm1 = class(TForm)

...

private

procedure WMNCHitTest(var message:TWMNCHitTest); message WM_NCHITTEST;

...

implementation

...

procedure TForm1.WMNCHitTest(var message:TWMNChitTest);

begin

if message.result = HT_CAPTION then

begin

...

end;

end;

...

此文章由 http://www.ositren.com 收集整理 ,地址为: http://www.ositren.com/htmls/68156.html