cpubbs论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

LabVIEW+单片机学习套件全套教程资料下载[免费]LabVIEW论坛精华列表贴USB0816数据采集卡《LabVIEW宝典》
LabWindows/CVI论坛精华贴NET0816以太网数据采集卡RC0210远程设备授权系统 关闭关停锁定打开设备 户外分布式数据采集
NET1624低速高精度以太网数据采集卡WIFI0824SD无线WIFI网络数据采集卡脱机运行 SD存储 小尺寸微型 串口采集远程采集 安卓 手持移动采集 纪录仪
查看: 8002|回复: 19

CVI如何建立子界面?

[复制链接]
发表于 2008-10-22 18:48:59 | 显示全部楼层 |阅读模式
如果我有一个主界面,我希望在这个主界面中点击一个按钮来调用另外一个子窗口,那么,这个窗口应该如何建立?是否将子窗口以及代码全部完成,再把它加到主模块的项目中吗?请高手帮忙!
发表于 2008-10-22 21:48:15 | 显示全部楼层
就是子面板的显示出来!displaypanel()

子面板的程序都可以写在同一个项目的,同一个UIR里面可以有多个PANEL,里面的所有回调函数可以写在同一个C文档里面!
发表于 2008-10-23 08:25:19 | 显示全部楼层
CVI中建立其它界面(panel)的方法:
1、在主界面后的背景中,点击鼠标右键->panel。

2、file->new->user interface。

3、edit->add files to project->user interface。可以将其它工程中做好的界面加入进来。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
 楼主| 发表于 2008-10-23 10:50:40 | 显示全部楼层
非常感谢!可否给我一个简单的例子?我编译的时候总是出错!
 楼主| 发表于 2008-10-23 15:38:50 | 显示全部楼层

子界面设置?

我做了一个主界面调用子界面的程序,但是,发现子界面中不能显示最大化按钮,最小化按钮,关闭按钮,请问:怎样才能使它显示出来?是哪个地方需要设置吗?还是用函数搞定?如果用函数搞定,那么那段代码应该加在哪个地方?本人刚开始学习CVI,希望兄弟们不吝赐教!
发表于 2008-10-23 16:08:12 | 显示全部楼层
面板属性页中:Other Attributes是设置面板显示效果的:

如果不选title bar visible,那就会出现你所说的效果。
另外,你也可以通过函数SetPanelAttribute()在程序运行时,改变显示效果。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
发表于 2008-10-23 16:10:10 | 显示全部楼层
如果对程序有疑问,最好将源代码上传,便于大家分析问题所在!
 楼主| 发表于 2008-10-24 19:53:00 | 显示全部楼层

没有最大化最小化按钮

请大家帮忙看看,子面板为什么没有最大化最小化按钮

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
 楼主| 发表于 2008-10-26 14:52:41 | 显示全部楼层
哎,我好不容易把文件传上来了,怎么没有人理我呢?我看了好久,还是看不出问题在哪里!
发表于 2008-10-27 09:20:08 | 显示全部楼层
你的文件刚看过。简单地解释一下:例程中的窗体是通过在主User Interface里建立的,此时你可以有两种选择:
1、通过DisplayPanel()函数建立MDI形式的多窗体,子窗体只能显示在父窗体内部,超出部分会被父窗体遮盖,此子窗体具有Tooltips属性,在子窗体显示时,你仍然能够操作父窗体,但是其本身没有最大、最小、关闭按钮
2、通过InstallPopup()函数建立模式多窗体,子窗体显示在父窗体以外,此子窗体不具有Tooltips属性,在子窗体显示时,你不能够操作父窗体,但具有上述三种按钮
发表于 2008-10-27 09:27:21 | 显示全部楼层
再补充一下,即便是以InstallPopup()显示的窗体,你也可以通过SetPanelAttribute()函数控制最大、最小和关闭按钮的显示!
 楼主| 发表于 2008-10-27 11:33:09 | 显示全部楼层
好象不对.用InstallPopup()调用窗体,也只能显示关闭按钮,不能显示最大化最小化按钮
我在例子中找到一个,他用DisplayPanel()调用窗体,同样可显示三个按钮啊

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
发表于 2008-10-27 12:09:56 | 显示全部楼层
刚才解释时有点遗漏:关键在加载窗体时的参数。
int LoadPanel (int parentPanelHandle, char filename[], int panelResourceID);
1、parentPanelHandle如果为父窗体的句柄时,是多窗体模式(即MDI和模态窗体,如我前边所说);
2、parentPanelHandle=0时,是将panelResourceID加载为顶层窗体,panelResourceID是主窗体,此时,不是前面所说的多窗体模式!
 楼主| 发表于 2008-10-27 14:38:13 | 显示全部楼层
netcreature,真的太感谢你了,真的!
我还有个问题:主面板的关闭按钮可以作用,为什么自面板的关闭按钮不能作用呢?怎样才能使子面板的关闭按钮也能作用?
发表于 2008-10-27 15:17:08 | 显示全部楼层
方法1、在子面板上添加一个Command Button,再双击子面板,在子面板属性设置中,将Close Control设定为添加的按钮控件,生成所有代码后,既可以通过Command Button按钮关闭子面板,也可以通过标题栏右上角关闭按钮关闭子面板;

方法2、添加子面板的回调函数->生成子面板回调函数->在子面板回调函数的EVENT_CLOSE:添加DiscardPanel(子面板句柄);。然后就可以通过标题栏右上角关闭按钮关闭子面板。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|cpubbs论坛. ( 粤ICP备09171248号 )

GMT+8, 2025-4-7 17:36 , Processed in 0.585980 second(s), 6 queries , Gzip On, File On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表