|
( m# U; x$ j& F g, R
* ~# C0 L3 x4 B, s: J& E" B$ A9 J windows在创建窗体时使用一个CreateWindowEx函数,通过传给这个函数的参数来确定窗口的样式。
7 v0 G7 f* c; _/ _2 Z" u; T" W* l1 Y& s而CreateParams虚函数是VCL在创建窗口之前调用的,用来取得要创建的窗口的样式的及其它一些相关属性的(Params参数),这里先通过调用TCustomForm的CreateParams函数来取得标准的窗口属性,再通过Params.Style^=WS_CAPTION;把窗口样式里的标题栏属性去掉,函数执行之后呢,VCL就把这个参数传给CreateWindowEx函数,这样创建的窗口就没有标题栏了。
& r0 E2 F( e. U2 @* ?假如form1是主窗口,form2是一个子窗口。在form2的单元里加入一个函数:! f+ w+ A8 L2 `( w; E: I2 y/ v t
void __fastcall TForm2::CreateParams(Controls::TCreateParams & Params)' {# G! j" W+ v; r7 c
{8 c' R- l. J4 ~
//TOD Add your source code here5 a0 H5 R7 D$ U7 Q$ T9 g
TCustomForm::CreateParams(Params);
# B3 H$ H# ~5 h4 L Params.Style^=WS_CAPTION;
/ g0 ^5 }- o. y9 m} 7 ~- c% Z! V M6 s0 a) y& a+ h) ?2 V
头文件里这样加:
; c+ Y/ s1 r2 V/ _, W" S& rpublic: // User declarations- w, Z3 p, V) g' o' [4 l
' G. i9 v6 m2 a7 \+ c) W0 Z virtual void __fastcall CreateParams(Controls::TCreateParams & Params);
" j4 \1 G6 q0 ]8 e$ C, t6 a* V就OK了,' t9 p0 A3 `% \& P$ c; {" h6 c
" w5 O: g3 g9 i6 E" e% D
|