怎样?怎样?怎样?....(300分)

  • 主题发起人 主题发起人 cAkk
  • 开始时间 开始时间
C

cAkk

Unregistered / Unconfirmed
GUEST, unregistred user!
我把一个window border设成bsNone ,窗口就没有立体感了,怎样解决?<br><br>我知道这个问题很简单,而且以前有过回答,不过我现在身边有事,一时<br>又想不起来了,帮我看看.
 
斑竹大人也提问提?我不知到,SORRY<br>能不能回答我的问题?谢谢了!!!
 
你为什么要把它设成bsnone,说说你想干什么
 
放一个Panel,Align=alClient,不行吗?BevelWidth&gt;0<br>
 
既然要立体感,为何还要设成noneBorder?????<br>此题太难了!!;-)<br>
 
&gt;&gt;你为什么要把它设成bsnone,说说你想干什么<br>哎呀!笨笨! 就是类似splash窗口的,很多软件启动时候显示一个版权窗口,<br>他们没有变框,但是有立体感的那种.<br><br>Atomic: 你哪个问题? 抱歉现在贴子太多,实在没时间一个一个看.
 
&gt;&gt;此题太难了!!;-)<br>不难!在Form周围放Panel就可以实现立体效果,我做过!
 
To cAkk:<br>&nbsp; &nbsp; &nbsp; "一个抄书的问题!"请求希尔SHELL排序法,就在你下面
 
同意HEXI.
 
原来...<br>我做过,是我现在做的项目的开篇,不规则窗口,3D效果是画出来的<br>带个“进度条”<br>要吗?
 
抱歉,没看到Hexi的回答
 
不不不,不用panel的,只要设置窗口的某个风格常数就可以的,但是我想不起来<br>是什么了.
 
我在C++Builder中是这样处理的:<br>&nbsp; &nbsp;RECT rc;<br>&nbsp; &nbsp;::SetRect(&amp;rc,0,0,ClientWidth,ClientHeight);<br><br>&nbsp; &nbsp;Canvas-&gt;Pen-&gt;Color=clGreen;<br>&nbsp; &nbsp;Canvas-&gt;Brush-&gt;Color=clGreen;<br>&nbsp; &nbsp;Canvas-&gt;Rectangle(0,0,30,ClientHeight);<br><br>&nbsp; &nbsp;DrawEdge(Canvas-&gt;Handle,&amp;rc,EDGE_RAISED,BF_RECT );<br>
 
不好意思忘了说明了,<br>是放在onpaint事件中,<br>实际只有这几句起作用:<br>&nbsp; &nbsp;RECT rc;<br>&nbsp; &nbsp;::SetRect(&amp;rc,0,0,ClientWidth,ClientHeight);<br><br>&nbsp; &nbsp;DrawEdge(Canvas-&gt;Handle,&amp;rc,EDGE_RAISED,BF_RECT );<br>
 
只要设置窗口的某个风格常数就可以的???
 
哎! 还是自己试出来了:<br><br>在OnCreate事件里:<br>SetWindowLong(handle, GWL_STYLE, GetWindowLong(Handle, GWL_STYLE) and NOT WS_CAPTION);<br>height:=height+1;<br><br>为什么要height+1呢? 因为不这样窗口就不刷新,reafresh也没用.不知道为什么.<br><br>BTW:不过我以前不是设置的这个风格常数,而是另外一个..管他呢,解决就行了.<br>
 
忘了说了,这样做就不要再设置 boredr=bsNone了.
 
有酒大家喝.
 
谢了,自己解决问题还给大家分数
 
procedure TForm1.CreateParams(var Params: TCreateParams);<br>begin<br>inherited CreateParams(Params);<br>Params.Style:=(Params.Style and not WS_CAPTION and not WS_OVERLAPPED) or WS_DLGFRAME or WS_POPUP<br>end;<br>
 
后退
顶部