在Delphi5中怎样将Form的Caption Bar去掉??????请各位不吝赐教!

linkie 2000-05-29 09:34:00
如果要将MDIChildren的标题栏(窗体上的蓝色的,有最小化、最大化和关闭按钮的那条Bar)去掉,同时要保证去掉后该窗体的上边框仍然是有立体感的,也就是好象只是将那条Bar的蓝色部分去掉一样,我该怎么做呢?另外,如果MDIChildren的Client区中放置有Align属性设为AlClient的控件,那么去掉Caption Bar后将怎样使用户依然能任意移动窗体呢?
以上两个问题,谁有高见,请您指点迷津!
谢谢!
...全文
328 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
skt642 2001-05-31
  • 打赏
  • 举报
回复
10503关注!
kylix2001 2001-05-31
  • 打赏
  • 举报
回复
这样以后还能不能改变窗体大小?

zxghl 2000-06-16
  • 打赏
  • 举报
回复
Sachow说的对。简便易行。
要移动窗体时,拦截主Panel的MouseMove事件,参照yeah的方法。
linkie 2000-06-16
  • 打赏
  • 举报
回复
我的问题已经由Joyuce解决了!
joyuce 2000-06-16
  • 打赏
  • 举报
回复
FormCreate:
SetWindowLong(Handle,GWL_STYLE, GetWindowLong(Handle,GWL_STYLE) AND NOT WS_CAPTION);
ClientHeight := Height;
保证去掉后该窗体的上边框仍然是有立体感的,好象只是将那条Bar的蓝色部分去掉一样.
Sachow 2000-06-06
  • 打赏
  • 举报
回复
把窗体的BorderStyle设为bsNone,在窗体上放一个Panel,把它的Align属性设为
alClient,BorderWidth设为2,再把其它如按钮、输入框等控件放在这个Panel上就
行了。想要边框的立体感更好一些,只需要按这个方法多套几个Panel就行了。
supershan 2000-06-06
  • 打赏
  • 举报
回复
关注...
pcly 2000-06-05
  • 打赏
  • 举报
回复
API 的SendMessage()函数 发送窗体移动消息
sundyl 2000-06-02
  • 打赏
  • 举报
回复
procedure NPP(Var MESSAGE:TWMNCPAINT);message WM_NCPAINT;
处理WM_NCPaint就可以,别忘记返回 Message.Result := 0
在这里你需要自己绘制标题栏,这个我就不再行了。
linkie 2000-05-30
  • 打赏
  • 举报
回复
Yeah:
你好!阁下您给的解答我看过了,不过我知道您的解答是不能奏效的。我想您可以自己
动手试试的!你可能尚未看清楚我的问题。即便这样,我也要谢谢你的神速解答。
Thank you!
yeah 2000-05-29
  • 打赏
  • 举报
回复
使用以下方法可以达到你的要求:
protected
procedure CreateParams(var Params: TCreateParams); override;
procedure MoveCaption(Var MESSAGE:TWMNCHITTEST);Message WM_NCHITTEST;

procedure TForm1.CreateParams(var Params: TCreateParams);
begin
inherited CreateParams(Params);
With Params do
Style:=Style or WS_DLGFRAME;
end;

procedure TForm1.MoveCaption(var MESSAGE:TWMNCHITTEST);
begin
inherited;
if Message.Result=HTCLIENT then Message.Result:=HTCAPTION;
end;
五、程序设计题(每小题10分,共20分) 1.编写一个程序计算:S=1+2+3+……+N,N的值由用户确定。 2.设有学生表、成绩表和课程表的结构如下: 学生表(xs.dbf):学号/C/7,姓名/C/6,性别/C/2。 成绩表(cj.dbf):学号/C/7(有重复值),课程号/C/5(有重复值),考试成绩/N/5/1。 课程表(kc.dbf):课程号/C/4,课程名/C/12。 按如下要求编写一个程序: 根据以上三个表,通过键盘任意输入一个课程的课程号,按如下格式显示课程名以及选修该门课程的学生姓名、成绩,计算并显示该门课程的平均分、最高分和最低分,其格式如下: 选修的课程号:XXXXXX???????课程名:XXXXXX 学生姓名????成绩 ……??????…… ……??????…… 平均分:XXX.?X????最高分:XXX.?X????最低分:XXX.?X ?(本文已被浏览?1605?次) ?发布人:张高亮 ?→?推荐给我的好友上篇文章:二级VFP笔试模拟题第2套(分析题) 下篇文章:一级上机模拟试题第1套 二级VFP笔试模拟题第2套(分析题) 作者:张高亮??出处:计算机基础系??更新时间: 2010年05月18日? 四、读程序写出运行结果(每小题5分,共20分) 1.有一表单程序的运行界面如图2所示。 以下是其文本框控件的valid事件代码。程序运行后,在文本框输入“45673”。写出程序运行结果(文本框的新值)。 X=val(Thisform.text1.value) Y=100 Do?while?x>0 ???y=y-x ???x=int(x/10) enddo Thisform.text1.value=str(y) 2.设有数据表ST.DBF的结构内容如下: 记录号????编号(C)????性别(C)??成绩(N) ??1????????001???????????男?????????86? ??2????????122???????????女?????????62? ??3????????225???????????男?????????58? ??4????????220???????????女?????????79? ??5????????010???????????女?????????89? 设计如图3所示表单,将st.dbf添加到表单的数据环境,表单运行后,单击命令按钮“Command1”,标签Label1将显示什么? “Command1”命令按钮的click事件代码: X=1 cj=成绩 SCAN ???IF=成绩>cj ??????cj=成绩 ?x=RECNO() ENDIF ENDSCAN GO?x Thisform.refresh z=学号+space(2)+性别+space(2)+allt(str(成绩)) thisform.Label1.caption=z 3.下面程序运行时输入5,写出程序执行结果。 SET?TALK?OFF CLEAR INPUT?“输入层数”?TO?N FOR?K=1??TO??N ????????????SPACE(N-K) ?????????FOR?J=1??TO?K ????????????????“*” ?????????ENDFOR ?????????? ?????ENDFOR 4.以下程序的运行结果是什么? 主程序main.prg Clea a=1 b=2 c=3 do?sub1?with?a ?a,b,c retu *sub1.prg Para priv?c a=10 b=20 c=30 ?a,b,c do?sub2 retu *sub2.prg priv?a a=2 b=2*a ?a,b,c retu

5,379

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧