高分求解!如何编程改变边框为bsNone的窗体的大小?可以利用WM_NCHitTest,也可以利用其他方法,但边框限制为bsNone。给我一个例子。 加一个条件,窗体上有个alClient的Panel 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 protected procedure CreateParams(var Params: TCreateParams); override;procedure TForm1.CreateParams(var Params: TCreateParams);begin inherited; Params.Style := Params.Style or WS_SIZEBOX;end; 呵呵,将BorderStyle设为bsNone然后在Form声明中写: protected procedure CreateParams(var Params: TCreateParams); override;代码是:procedure TForm1.CreateParams(var Params: TCreateParams);begin inherited; Params.Style := Params.Style or WS_THICKFRAMEend; 提供参考:怎样在点击拖动控件时拖动无标题窗体!procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);begin ReleaseCapture; SendMessage(Handle,WM_SYSCOMMAND,$F012,0);end; 上面的代码改成labelMouseDown后,可以实现按住label移动窗体,并且会出现虚线框,但是改变大小却好象不行 呵呵,上面那个例子是发送 sc_DragMove 消息,当然不能改变大小啦。感谢taxi(游少爷) 和 chechy(chechy) 提供的两个参数。我提出的的问题基本是解决了,但是有一个问题,我不希望窗体出现边框。也就是说如果我用一个Image放在窗体上的话,会有1-2个象素的边框。稍微改变一下问题的描述吧:如果我处理 WM_NCHitTest 消息的话,对于空白窗体是可以捕捉到的。但是,如果窗体上有一个Panel的话,那么 WM_NCHITTest消息会被Panel捕捉到。但是窗体却接收不到这个消息了。我想问问如何才能让鼠标在Panel上的时候,窗体能够接收到WM_NCHitTest消息。给一个测试程序:interfaceTForm1 = Class(TForm)...procedure WMNCHitTest(var Msg: TWMNCHitTest); message WM_NCHITTEST;...end;在窗体的 WM_NCHITTEST 消息响应里面写procedure TForm1.WMNCHitTest(var Message: TWMNCHitTest);begin Caption := Format('%d:%d', [Message.XPos, Message.Ypos]); inherited;end;然后在窗体上放一个Panel,可以看到,当鼠标在Panel上的时候,窗体的Caption不会变化了。如何能够在这种情况下让窗体也能接收到这个消息呢?感谢各位的参与,请继续予以关注。 好象从 TWinControl 继承下来的控件如果在顶层的话都会捕捉到这个消息。但是它们下面的对象就接收不到这个消息了。为什么呢? java 用Jfreechat做如何做动态仿cup图? 寻找一段 磁性窗体代码。 线程独占问题 幫我看看下面 的代碼 [长沙]诚聘 Delphi 程序员,兼职。 一个很奇怪的问题,很有意思的.... 着急啊,Idftp1.List的问题? 关于两个函数的使用; 解决了就给分 DELPHI, paradox 7 中日期查询的SQL语句该怎样写?(在线等) 像windows的时间与日期属性框中的指针式时钟是怎么实现的? cobi(我是小新,我只有五岁):请进,我是HGL54321 如何显示一个目录选择对话框,要可以指定初始路径!
procedure CreateParams(var Params: TCreateParams); override;procedure TForm1.CreateParams(var Params: TCreateParams);
begin
inherited;
Params.Style := Params.Style or WS_SIZEBOX;
end;
然后在Form声明中写:
protected
procedure CreateParams(var Params: TCreateParams); override;代码是:procedure TForm1.CreateParams(var Params: TCreateParams);
begin
inherited; Params.Style := Params.Style or WS_THICKFRAME
end;
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
ReleaseCapture;
SendMessage(Handle,WM_SYSCOMMAND,$F012,0);
end;
我提出的的问题基本是解决了,但是有一个问题,我不希望窗体出现边框。
也就是说如果我用一个Image放在窗体上的话,会有1-2个象素的边框。稍微改变一下问题的描述吧:
如果我处理 WM_NCHitTest 消息的话,对于空白窗体是可以捕捉到的。
但是,如果窗体上有一个Panel的话,那么 WM_NCHITTest消息会被Panel捕捉到。
但是窗体却接收不到这个消息了。我想问问如何才能让鼠标在Panel上的时候,窗体
能够接收到WM_NCHitTest消息。给一个测试程序:
interface
TForm1 = Class(TForm)
...
procedure WMNCHitTest(var Msg: TWMNCHitTest); message WM_NCHITTEST;
...
end;在窗体的 WM_NCHITTEST 消息响应里面写
procedure TForm1.WMNCHitTest(var Message: TWMNCHitTest);
begin
Caption := Format('%d:%d', [Message.XPos, Message.Ypos]);
inherited;
end;
然后在窗体上放一个Panel,可以看到,当鼠标在Panel上的时候,窗体的Caption不会变化了。如何能够在这种情况下让窗体也能接收到这个消息呢?感谢各位的参与,请继续予以关注。
但是它们下面的对象就接收不到这个消息了。为什么呢?