社区
Delphi
帖子详情
高分求解!如何编程改变边框为bsNone的窗体的大小?可以利用WM_NCHitTest,也可以利用其他方法,但边框限制为bsNone。给我一个例子。
石榴刺猬
2001-11-11 08:54:50
如果还是不了解我要什么,那么做这样一个东西吧:
一个无边框的窗体,上有一个label。要求鼠标点击label然后拖动,出现改变窗体的大小的虚框,松开鼠标,窗体大小发生变化。
...全文
104
8
打赏
收藏
高分求解!如何编程改变边框为bsNone的窗体的大小?可以利用WM_NCHitTest,也可以利用其他方法,但边框限制为bsNone。给我一个例子。
如果还是不了解我要什么,那么做这样一个东西吧: 一个无边框的窗体,上有一个label。要求鼠标点击label然后拖动,出现改变窗体的大小的虚框,松开鼠标,窗体大小发生变化。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
石榴刺猬
2001-11-12
打赏
举报
回复
好象从 TWinControl 继承下来的控件如果在顶层的话都会捕捉到这个消息。
但是它们下面的对象就接收不到这个消息了。为什么呢?
石榴刺猬
2001-11-12
打赏
举报
回复
呵呵,上面那个例子是发送 sc_DragMove 消息,当然不能改变大小啦。
感谢taxi(游少爷) 和 chechy(chechy) 提供的两个参数。
我提出的的问题基本是解决了,但是有一个问题,我不希望窗体出现边框。
也就是说如果我用一个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不会变化了。如何能够在这种情况下让窗体也能接收到这个消息呢?
感谢各位的参与,请继续予以关注。
石榴刺猬
2001-11-11
打赏
举报
回复
加一个条件,窗体上有个alClient的Panel
cobi
2001-11-11
打赏
举报
回复
上面的代码改成labelMouseDown后,可以实现按住label移动窗体,并且会出现虚线框,但是改变大小却好象不行
cobi
2001-11-11
打赏
举报
回复
提供参考:怎样在点击拖动控件时拖动无标题窗体!
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
ReleaseCapture;
SendMessage(Handle,WM_SYSCOMMAND,$F012,0);
end;
chechy
2001-11-11
打赏
举报
回复
呵呵,将BorderStyle设为bsNone
然后在Form声明中写:
protected
procedure CreateParams(var Params: TCreateParams); override;
代码是:
procedure TForm1.CreateParams(var Params: TCreateParams);
begin
inherited;
Params.Style := Params.Style or WS_THICKFRAME
end;
cobi
2001-11-11
打赏
举报
回复
重点关注
taxi
2001-11-11
打赏
举报
回复
protected
procedure CreateParams(var Params: TCreateParams); override;
procedure TForm1.CreateParams(var Params: TCreateParams);
begin
inherited;
Params.Style := Params.Style or WS_SIZEBOX;
end;
delphi 无标题
窗体
加
边框
可拖拽调整
大小
delphi无标题
窗体
(borderstyle=
bs
none)默认没有
边框
,也无法拖拽必变
窗体
大小
,本资源为无标题
窗体
加
边框
并可拖拽调整
大小
delphi 无标题
窗体
加
边框
可拖拽调整
大小
及移动
窗体
delphi无标题
窗体
(borderstyle=
bs
none)默认没有
边框
,无法移动,也无法拖拽必变
窗体
大小
,本资源为无标题
窗体
加
边框
并可拖拽调整
大小
以及移动
窗体
位置。
四周带阴影的无
边框
窗口(DELPHI源代码)
四周带阴影的无
边框
窗口(DELPHI源代码) ...3、将Form的BorderStyle改为
bs
None; 4、在From的FormMouseDown事件中增加以下语句: ReleaseCapture; SendMessage(Handle,
WM
_SYSCOMMAND, SC_MOVE + HTCaption, 0);
Delphi 实现带阴影效果的画框
Delphi7源码实现带阴影效果的图片画框,为一幅图片增加立体的阴影修饰,就像挂在墙上的风景画,还可设置多种颜色阴影效果,另外还可设置尝试阴影效果, 运行环境:Windows/Delphi7
显示/光电技术中的触摸屏
编程
图象处理的一些小技巧
怎样使
窗体
全屏显示,即根据显示器的
大小
来确定
窗体
的
大小
,这里介绍三种
方法
来实现: (1)BorderStyle := bsNone; WindowState := wsMaximized; (2...
Delphi
5,392
社区成员
262,732
社区内容
发帖
与我相关
我的任务
Delphi
Delphi 开发及应用
复制链接
扫一扫
分享
社区描述
Delphi 开发及应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章