quote:以下是引用城外之人在2012-03-20 07:39:06的发言:
不要用定义字符串常数的方法。
char sWndName[50];
short int i;
//先隐藏所有画面窗口
for (i=1;i<=12;i++)
{
sprintf(sWndName,"状态画面%i",i);
SetVisible(PIC_Name,sWndName ,0);
}
//再显示某个画面窗口
if (Value>0)
{
sprintf(sWndName,"状态画面%i",Value);
SetVisible(PIC_Name,sWndName ,1);
}
++++++++++++++++++++++++++++++++++++++++++++
封装成项目函数如下。
void PIC(char *PIC_Name,char * sWnd,char *TAG)
{
//PIC_Name 画面窗口所在主画面名称
//sWnd 画面窗口对像名称前缀
//TAG 控制变量
int Value=GetTagWord(TAG); //Control_TAG 控制画面变量
char sWndName[50];
short int i;
//先隐藏所有画面窗口(12个画面窗口)
for (i=1;i<=12;i++)
{
sprintf(sWndName,"sWnd%i",i); //PIC_sWnd 画面窗口的对像名称前缀
SetVisible(PIC_Name,sWndName ,0);
}
//再显示某个画面窗口
if (Value>0)
{
sprintf(sWndName,"sWnd%i",Value);
SetVisible(PIC_Name,sWndName ,1);
}
}
++++++++++++++++++++++++++++++++++++++++++++
调用项目函数如下。
char st[20]="状态画面";
PIC("S0.PDL",&st[0],"工作工位选择"); //Return-Type: void
编译成功,运行状态不对,st传递有错,直接将"状态画面"替换项目函数的"sWnd"运行正常。现在不知道怎么弄了!