|
8 w; o1 N! m- _% p& C3 b" u: S
% @: C, P" C" |# I% n6 h9 ~5 _% z windows在创建窗体时使用一个CreateWindowEx函数,通过传给这个函数的参数来确定窗口的样式。
9 u# a& K! P K! a. {# i% s' m而CreateParams虚函数是VCL在创建窗口之前调用的,用来取得要创建的窗口的样式的及其它一些相关属性的(Params参数),这里先通过调用TCustomForm的CreateParams函数来取得标准的窗口属性,再通过Params.Style^=WS_CAPTION;把窗口样式里的标题栏属性去掉,函数执行之后呢,VCL就把这个参数传给CreateWindowEx函数,这样创建的窗口就没有标题栏了。
1 e" Y& h2 @+ Y5 h/ h) m5 q' m假如form1是主窗口,form2是一个子窗口。在form2的单元里加入一个函数:
4 e4 j# o# G/ Z9 l1 t! R& Svoid __fastcall TForm2::CreateParams(Controls::TCreateParams & Params)
3 S5 \ K V. i' E{0 A7 C1 J }7 `0 s9 F/ C
//TOD Add your source code here
' g1 e5 m# u7 S9 U! B) I TCustomForm::CreateParams(Params);7 s+ X/ y8 e" P. R0 v9 t4 h/ H
Params.Style^=WS_CAPTION;
) }$ L4 U5 ]% i3 a. S {4 _' ~} 3 |, q+ K4 [' N& k' H) W7 M
头文件里这样加:
/ ~( o2 p2 e: d7 h! b2 d5 ]: xpublic: // User declarations+ @, R- i+ d3 L+ c
# K+ c6 k( ^5 a# I
virtual void __fastcall CreateParams(Controls::TCreateParams & Params);
& j4 Z. C4 `5 o就OK了,' `& Q7 J! C$ R& D1 l# o
% W* B9 K% g! N8 y* O, d( G |