如何将程序的标题栏(蓝条)去掉,而不使用 bsnone ,因为我想得到一个有立体感的窗口,除了没有标题外其他的与普通的一样(50分)

  • 主题发起人 主题发起人 魏启明
  • 开始时间 开始时间
wm_ncpaint消息,自己画吧
 
在OnCreate事件里:
SetWindowLong(handle, GWL_STYLE, GetWindowLong(Handle, GWL_STYLE) and NOT WS_CAPTION);
height:=height+1;

或者

procedure TForm1.CreateParams(var Params: TCreateParams);
begin
inherited CreateParams(Params);
Params.Style:=(Params.Style and not WS_CAPTION and not WS_OVERLAPPED) or WS_DLGFRAME or WS_POPUP
end;
 
procedure SetWindowNoCaption(H:THandle);
Var NStyle,NExStyle: LongInt;
begin
NStyle:=GetWindowLong(H, GWL_STYLE);
NExStyle:=GetWindowLong(H, GWL_EXSTYLE);
NExStyle:=NExStyle or WS_EX_CONTROLPARENT;
NStyle:=NStyle and not WS_Caption;
NStyle:=NStyle or WS_THICKFRAME
SetWindowLong(H, GWL_EXSTYLE,NExStyle);
SetWindowLong(H, GWL_STYLE,NStyle);
SetWindowPos(H,0, 0,0,0,0,SWP_DRAWFRAME or SWP_FRAMECHANGED or SWP_NOACTIVATE or
SWP_NOMOVE or SWP_NOSIZE or SWP_NOZORDER);
end;
 
用CreateParams就可以了
 
to jujus
怎么用
 
chshanghai,还问怎么用??我贴出的代码下一种不就是CreateParams么??
 
使用成功的代码:

wjiachun:

在OnCreate事件里:
SetWindowLong(handle, GWL_STYLE, GetWindowLong(Handle, GWL_STYLE) and NOT WS_CAPTION);
height:=height+1;
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部