kevin_2009 发表于 2008-10-22 18:48:59

CVI如何建立子界面?

如果我有一个主界面,我希望在这个主界面中点击一个按钮来调用另外一个子窗口,那么,这个窗口应该如何建立?是否将子窗口以及代码全部完成,再把它加到主模块的项目中吗?请高手帮忙!

cpubbs 发表于 2008-10-22 21:48:15

就是子面板的显示出来!displaypanel()

子面板的程序都可以写在同一个项目的,同一个UIR里面可以有多个PANEL,里面的所有回调函数可以写在同一个C文档里面!

netcreature 发表于 2008-10-23 08:25:19

CVI中建立其它界面(panel)的方法:
1、在主界面后的背景中,点击鼠标右键->panel。

2、file->new->user interface。

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

kevin_2009 发表于 2008-10-23 10:50:40

非常感谢!可否给我一个简单的例子?我编译的时候总是出错!

kevin_2009 发表于 2008-10-23 15:38:50

子界面设置?

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

netcreature 发表于 2008-10-23 16:08:12

面板属性页中:Other Attributes是设置面板显示效果的:

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

netcreature 发表于 2008-10-23 16:10:10

如果对程序有疑问,最好将源代码上传,便于大家分析问题所在!

kevin_2009 发表于 2008-10-24 19:53:00

没有最大化最小化按钮

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

kevin_2009 发表于 2008-10-26 14:52:41

哎,我好不容易把文件传上来了,怎么没有人理我呢?我看了好久,还是看不出问题在哪里!

netcreature 发表于 2008-10-27 09:20:08

你的文件刚看过。简单地解释一下:例程中的窗体是通过在主User Interface里建立的,此时你可以有两种选择:
1、通过DisplayPanel()函数建立MDI形式的多窗体,子窗体只能显示在父窗体内部,超出部分会被父窗体遮盖,此子窗体具有Tooltips属性,在子窗体显示时,你仍然能够操作父窗体,但是其本身没有最大、最小、关闭按钮;
2、通过InstallPopup()函数建立模式多窗体,子窗体显示在父窗体以外,此子窗体不具有Tooltips属性,在子窗体显示时,你不能够操作父窗体,但具有上述三种按钮。

netcreature 发表于 2008-10-27 09:27:21

再补充一下,即便是以InstallPopup()显示的窗体,你也可以通过SetPanelAttribute()函数控制最大、最小和关闭按钮的显示!

kevin_2009 发表于 2008-10-27 11:33:09

好象不对.用InstallPopup()调用窗体,也只能显示关闭按钮,不能显示最大化最小化按钮
我在例子中找到一个,他用DisplayPanel()调用窗体,同样可显示三个按钮啊

netcreature 发表于 2008-10-27 12:09:56

刚才解释时有点遗漏:关键在加载窗体时的参数。
int LoadPanel (int parentPanelHandle, char filename[], int panelResourceID);
1、parentPanelHandle如果为父窗体的句柄时,是多窗体模式(即MDI和模态窗体,如我前边所说);
2、parentPanelHandle=0时,是将panelResourceID加载为顶层窗体,panelResourceID是主窗体,此时,不是前面所说的多窗体模式!

kevin_2009 发表于 2008-10-27 14:38:13

netcreature,真的太感谢你了,真的!
我还有个问题:主面板的关闭按钮可以作用,为什么自面板的关闭按钮不能作用呢?怎样才能使子面板的关闭按钮也能作用?

netcreature 发表于 2008-10-27 15:17:08

方法1、在子面板上添加一个Command Button,再双击子面板,在子面板属性设置中,将Close Control设定为添加的按钮控件,生成所有代码后,既可以通过Command Button按钮关闭子面板,也可以通过标题栏右上角关闭按钮关闭子面板;

方法2、添加子面板的回调函数->生成子面板回调函数->在子面板回调函数的EVENT_CLOSE:添加DiscardPanel(子面板句柄);。然后就可以通过标题栏右上角关闭按钮关闭子面板。
页: [1] 2
查看完整版本: CVI如何建立子界面?