如何屏蔽掉delphi程序运行时,单击 标题栏 程序图标位置,就会弹出的菜单( 还原 移动 大小 最大化 最小化 关闭) 请问一下,如何可以屏蔽掉这个单击,又不会影响鼠标单击标题栏后对程序的拖动。
此问题已经由 ansinlee 帮助解决
procedure WMNCLButtonDown(var Message: TWMNCLButtonDown); message WM_NCLBUTTONDOWN;
procedure WMNCRButtonDown(var Message: TWMNCRButtonDown); message WM_NCRBUTTONDOWN;
procedure TForm1.WMNCLButtonDown(var Message: TWMNCLButtonDown);
begin
//如果事件是单击了系统菜单则直接返回,否则交给系统处理。
if Message.HitTest = HTSYSMENU then
Message.Result := 0
else
inherited;
end; procedure TForm1.WMNCRButtonDown(var Message: TWMNCRButtonDown);
begin
//直接返回什么也不做
Message.Result := 0;
end;还有一个事想请问一下, 如果我在程序中使用了 VCLSkin 的话,那拦截窗口的非客户区鼠标消息(也就是二楼的方法)就失效了。有没有其它方法可以在用了VCLSkin 控件之后,还能够达到同样目的的方法呢,
控件的属性看过了,好像没有这么一项设置
此问题已经由 ansinlee 帮助解决
procedure WMNCLButtonDown(var Message: TWMNCLButtonDown); message WM_NCLBUTTONDOWN;
procedure WMNCRButtonDown(var Message: TWMNCRButtonDown); message WM_NCRBUTTONDOWN;
procedure TForm1.WMNCLButtonDown(var Message: TWMNCLButtonDown);
begin
//如果事件是单击了系统菜单则直接返回,否则交给系统处理。
if Message.HitTest = HTSYSMENU then
Message.Result := 0
else
inherited;
end; procedure TForm1.WMNCRButtonDown(var Message: TWMNCRButtonDown);
begin
//直接返回什么也不做
Message.Result := 0;
end;还有一个事想请问一下, 如果我在程序中使用了 VCLSkin 的话,那拦截窗口的非客户区鼠标消息(也就是二楼的方法)就失效了。有没有其它方法可以在用了VCLSkin 控件之后,还能够达到同样目的的方法呢,
控件的属性看过了,好像没有这么一项设置
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货