superspice 发表于 2009-1-20 00:22:54

怎么改变CVI 的 Panel 的标题栏的显示风格啊?

本帖最后由 netcreature 于 2009-1-20 08:52 编辑

小弟我初学CVI,遇到这样一个问题,在CVI 的界面编辑器里面编辑了一个主界面,比如是这个样子:



但是运行程序后出来的效果是这样的:

nn

哪位大侠有什么高招,让他显示如第一章图的现实的效果。
我想的办法,先将Panel的title bar visible 属性关闭,
然后用text 控件和decoration控件做一个假的标题栏,
但是在CVI中没有了Title 栏,panel居然不能移动,郁闷。

netcreature 发表于 2009-1-20 08:47:15

如果要移动面板,你需要在面板或text控件(具体处理哪个可以自己选择!也是会有区别的!!!)的EVENT_MOUSE_POINTER_MOVE事件中进行手工代码编写才能实现。

superspice 发表于 2009-1-20 11:21:48

谢谢老大的回复,除了你说的方法,有没有其他更简单的方法啊? 比如该Panel 的某个属性?

netcreature 发表于 2009-1-20 12:31:25

panel属性中改了也是没用的(对于XP或VISTA系统我试过,其他不太清楚!),运行是和你在面板属性窗口中的根本不一致!
用手工代码,可靠性高(当然会比较麻烦一点)。

hcwz 发表于 2009-1-20 21:11:42

8.5版本的不行,我用过5.5版本的好象可以在属性里设置的!

superspice 发表于 2009-1-21 14:47:16

那我知道了,谢谢各位了。

hcwz 发表于 2009-1-21 17:15:01

哦,我记错了,8.5版本的也可以的.在面板属性里将Title bar stytle设置成Classic就可以了!就可以设置标题栏的风格了!

netcreature 发表于 2009-1-22 08:28:16

哦,我记错了,8.5版本的也可以的.在面板属性里将Title bar stytle设置成Classic就可以了!就可以设置标题栏的风格了!
hcwz 发表于 2009-1-21 17:15 http://www.cpubbs.com/bbs/images/common/back.gif
呵呵... 你确实记错了!这个属性对于主窗体来说无效。

netcreature 发表于 2009-1-22 09:11:25

关于这个问题,还有一个解决方案,就是利用Windows API函数。
1、利用GetWindowText()得到窗体的标题文字;
2、利用GetWindowTextLength()函数得到标题文字长度;
3、利用CVI中GetPanelAttribute()函数得到窗体长度;
4、在窗体问题前插入(3项-2项)/2(进行取整)个空格;
5、用SetPanelAttribute()或SetWindowText()设置显示标题。

将上述过程写成子函数,在窗体的初始化、sizing、size事件中调用即可!

lj51_bbg 发表于 2009-1-30 10:14:03

牛人年年有,今年尤其多丫。呵呵,学习了

hcwz 发表于 2009-2-2 03:16:21

受用啊,我顶!!!
页: [1]
查看完整版本: 怎么改变CVI 的 Panel 的标题栏的显示风格啊?