|
6 u6 m; g1 s' J* B) c9 p$ x
& i2 T3 y4 Y) J windows在创建窗体时使用一个CreateWindowEx函数,通过传给这个函数的参数来确定窗口的样式。
4 ]& ^# J. l% K$ W- R+ E$ X f& F而CreateParams虚函数是VCL在创建窗口之前调用的,用来取得要创建的窗口的样式的及其它一些相关属性的(Params参数),这里先通过调用TCustomForm的CreateParams函数来取得标准的窗口属性,再通过Params.Style^=WS_CAPTION;把窗口样式里的标题栏属性去掉,函数执行之后呢,VCL就把这个参数传给CreateWindowEx函数,这样创建的窗口就没有标题栏了。
0 |" D( w0 n- _$ O+ H% q5 c假如form1是主窗口,form2是一个子窗口。在form2的单元里加入一个函数:$ b& ?7 b: I& f: L2 ^% @
void __fastcall TForm2::CreateParams(Controls::TCreateParams & Params)
# B- l* P# h' v- j; P( w) J{4 W/ e q* y0 e" [+ I2 [6 ]
//TOD Add your source code here
7 e; f5 ?; d! B# O [+ M3 a2 [ TCustomForm::CreateParams(Params);
' v# x) T! v8 H- P3 K1 Z$ r Params.Style^=WS_CAPTION;9 r1 {4 b) u- D% n( P! J8 ?
} ' N% X4 L2 d' J5 L5 H ]
头文件里这样加:9 C. t+ Q r0 i! C5 u) T
public: // User declarations
6 L3 f9 K: Y$ ]* x6 P. v$ n, N8 ] 5 w" ]" O2 R% n5 J* x; W
virtual void __fastcall CreateParams(Controls::TCreateParams & Params);
4 E- V) U9 J0 ^ B5 N3 c就OK了,
4 r" E" D% X1 {6 t4 Q2 x- e6 s5 i+ @
! E% F8 R9 R+ J0 c$ b4 z G) q! i |