CVI父子面板

来源:互联网 发布:云计算与大数据技术 编辑:程序博客网 时间:2024/06/03 16:01

父面板装载方式:

if ((FatherPanel = LoadPanel (0, "FP.uir", PANEL_1)) < 0)    return -1;

子面板装载方式:

if ((SonPanel = LoadPanel (FatherPanel, "SP.uir", PANEL_2)) < 0)   return -1;

CVI中父面板与子面板的区别:

父面板右上角有最大化最小化关闭等按钮,子面板没有;而且子面板只能在父面板的范围内移动。


CVI工程中若有很多面板
1、在main函数中利用LoadPanel加载所有面板,在后面遇到用到的地方直接使用相应的面板句柄在面板操作函数中调用即可。这种方式对内存的占用很大。
2.在面板上控件的回调函数中装载需要的面板同时display。缺点:如果在几个面板控件都要调用,那么该面板会被装载多次。
解决方法
1).增加一个判断面板是否加载了的变量
原来加载方式
if ((panelHandle = LoadPanel (0, "TEST.uir", PANEL)) < 0)
 return -1;
DisplayPanel (panelHandle);
更改后的加载方式
if((panelLoad==0)&&(panelHandle==0))
{
if ((panelHandle = LoadPanel (0, "TEST.uir", PANEL_1)) < 0)
return -1;
panelLoad=1;
}
DisplayPanel (panelHandle);