这个方法是应该只有TControl的子类才有,是为了方便设置window的属性,比如Button,ScrollBar,CheckBox等等窗口类型,还有窗口的外观等属性(是否有3D外观,是否有滚动条等)
解决方案 »
- 用SQL select怎么查找这样数据?
- 第10 个 100....
- 日期结算问题
- 关于ShowWindow(Application.Handle, SW_HIDE)的提问
- 在一个form中的public中声明了一个变量,并赋值。在第二中form中调用的时候为什么是空值呢?该怎样声明!
- 系统等待时间过长,怎么办?
- 如何从foxpro表中导入到sql server2000的表中?
- 何处有数据库字段命名大全?我想使我的数据库字段命名更规范一些。
- 请问如何通过语句来实现SQL Server 7.0的备份及还原数据库?
- delphi中ListBox组件使用的问题。
- zswang(伴水)(努力工作中) 还在吗?
- 简单的问题
在TWinControl中有个HandleNeeded
就是在该控件的句柄为0时调用CreateHandle,然后CreateHandle调用CreateWnd
,CreateWnd调用CreateParams,CreateParams就是完成创建窗口所需要的一些风格,类名的设置,最终调用CreateWindowHandle创建该窗口
procedure TWinControl.CreateWindowHandle(const Params: TCreateParams);
begin
with Params do
FHandle := CreateWindowEx(ExStyle, WinClassName, Caption, Style,
X, Y, Width, Height, WndParent, 0, WindowClass.hInstance, Param);
end;这里的Params就是
procedure CreateParams(var Params: TCreateParams); virtual;
中的Params
自己覆盖了该函数就可改写Params,定义自己的Window的格式
type
TCheckBoxTreeView = class(TTreeView)
protected
procedure CreateParams(var Params: TCreateParams); override;
end;procedure TCheckBoxTreeView.CreateParams(var Params: TCreateParams);
begin
inherited;
Params.Style:=Params.Style or TVS_CHECKBOXES;
{ TVS_CHECKBOXES declared in CommCtrl }
end;是不是任何控件加上这个参数(TVS_CHECKBOXES)都会有checkbox框,还是只有控件支持这个参数才会有?
TVS---->TreeView Style:)