我要在窗体的类型在bs_None状态下,实现其在bs_Sizeable下的功能,即鼠标在窗体右下角移动能改变窗体的大小,当窗体缩小时,自动出现滚动条,望大家帮帮忙,看看如何实现.多谢了.
解决方案 »
- 关于网络转发 socket句柄保护
- delphi XE 有什么新特点?
- adodataset通配符的过滤
- 一个很简单的问题,但就是不能解决啊
- 状态栏控件加入vcl控件如何实现呢?
- 用SQL语言导入数据的问题
- 這句不懂 ̄ ̄教教 ̄ ̄
- DELPHI 6 怎么在MDI 主窗体 加背景图片 好象用TIMAGE LOAD 图片会移位置
- 打印的问题???????/?////??????
- 高分求教:如何用delphi直接连接interbase数据库,不通过BDE或者ADO,什么的。
- 请问如何关闭WINDOWS,获得计算机名,和屏蔽CTRL+ALT+DEL
- 谁用过indy的pop3和smtp组件?接收后的附件居然多了个0
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;type
TForm1 = class(TForm)
private
{ Private declarations }
procedure WmNCHitTest(var Msg : TWMNCHitTest); message WM_NCHITTEST;
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.WmNCHitTest(var Msg: TWMNCHitTest);
const v=3; //border width
var p:TPoint;
begin
Inherited;
p:=Point(Msg.XPos,Msg.YPos);
p:=ScreenToClient(p);
if PtInRect(Rect(0,0,v,v),p) then
Msg.Result:=HTTOPLEFT
else if PtInRect(Rect(Width-v,Height-v,Width,Height),p) then
Msg.Result:=HTBOTTOMRIGHT
else if PtInRect(Rect(Width-v,0,Width,v),p) then
Msg.Result:=HTTOPRIGHT
else if PtInRect(Rect(0,Height-v,v,Height),p) then
Msg.Result:=HTBOTTOMLEFT
else if PtInRect(Rect(v,0,Width-v,v),p) then
Msg.Result:=HTTOP
else if PtInRect(Rect(0,v,v,Height-v),p) then
Msg.Result:=HTLEFT
else if PtInRect(Rect(Width-v,v,Width,Height-v),p) then
Msg.Result:=HTRIGHT
else if PtInRect(Rect(v,Height-v,Width-v,Height),p) then
Msg.Result:=HTBOTTOM
else
Msg.Result:=HTCAPTION;
end;
end.
Windows, Messages, SysUtils, Variants, Classes, Graphics, Forms,
Dialogs, ExtCtrls, Controls;type
TForm1 = class(TForm)
Panel1: TPanel;
private
{ Private declarations }
procedure CreateParams(var Params: TCreateParams); override;
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.CreateParams(var Params: TCreateParams);
begin
inherited CreateParams(Params);
Params.Style := Params.Style or WS_THICKFRAME;
end;end.滚动不太好弄,最好加个SCrollBox,再把控件放里面.