这是阀右键的c脚本************************************************************************
#include "apdefap.h"
void OnLButtonDown(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName, UINT nFlags, int x, int y)
{
#include "ACT_FPDEF.h"
BST_TopfieldOpen(lpszPictureName, lpszObjectName, "ACT_FP_FB610_VALVE_MAIN.pdl"); //Return-Type: long int
}
以下是BST_TopfieldOpen的全局脚本******************************************************************
#include "apdefap.h"
int BST_TopfieldOpen(char *lpszPictureName, char *lpszObjectName, char *lpszTopPictureName)
{
#include "BST_FPDEF.h"
int i;
char *pch;
char szParentPicture[512];
char szTopObjectName[128];
char szTagPrefix[128];
LINKINFO linkinfo;
// Check if all parameters are OK =================================================
if (lpszPictureName==NULL) {
printf ("#090: BST_TopfieldOpen() - lpszPictureName = NULL -> ABORT\r\n");
return (-90);
}
if (lpszTopPictureName==NULL) {
printf ("#091: BST_TopfieldOpen() - lpszTopPictureName = NULL -> ABORT\r\n");
return (-91);
}
// Create String wich includes the Parent Picture =============================================
strncpy (szParentPicture, GetParentPicture(lpszPictureName), sizeof(szParentPicture));
if (szParentPicture==NULL) {
printf ("#092: BST_TopfieldOpen() - No Parent Picture -> ABORT\r\n");
return (-92);
}
// printf ("lpszPictureName: %s\r\n", lpszPictureName);
// printf("lpszParentPicure: %s\r\n", szParentPicture);
// printf ("lpszTopPictureName: %s\r\n", lpszTopPictureName);
// printf ("lpszObjectName: %s\r\n", lpszObjectName);
// Read the connected Tag ==============================================================
GetLink(lpszPictureName, lpszObjectName, "QdwState", &linkinfo);
sprintf (szTagPrefix, linkinfo.szLinkName);
pch = strrchr(szTagPrefix, '.');
if (pch==NULL) {
printf ("#093: BST_TopfieldOpen() - No Tag Connection -> ABORT\r\n");
return (-93);
} else {
pch++;
*pch = '\0';
}
// printf ("TagPrefix: %s\r\n", szTagPrefix);
// Open the first TOPxx window, which is unvisible ============================================
for (i=1; i <= BST_FP_MAX; i++) {
sprintf (szTopObjectName, "TOP%02d", i);
// printf ("szTopObjectName: %s\r\n", szTopObjectName);
if (GetPropBOOL(szParentPicture, szTopObjectName, "Visible" ) == FALSE) {
SetPropChar(szParentPicture, szTopObjectName, "PictureName", lpszTopPictureName);
SetPropChar(szParentPicture, szTopObjectName, "TagPrefix", szTagPrefix);
SetPropBOOL(szParentPicture, szTopObjectName, "Visible", TRUE);
break;
}
}
}
以下是ACT_FPDEF.h里的脚本***************************************************************
// Set maximum counts of faceplates
#define BST_FP_MAX 10
// Define startpicture for Faceplates
#define ACT_FP_MOTOR "ACT_MOTOR_MAIN.pdl"
#define ACT_FP_VALVE "ACT_VALVE_MAIN.pdl"
#define ACT_FP_FF "ACT_FF_MAIN.pdl"
#define ACT_FP_PIDCTRL "ACT_PIDCTRL_MAIN.pdl"
#define ACT_FP_DIGITAL "ACT_DIGITAL_MAIN.pdl"
#define ACT_FP_ILOCK "ACT_ILOCK_MAIN.pdl"
#define ACT_FP_ANALOG "ACT_ANALOG_MAIN.pdl"
#define ACT_FP_VFD "ACT_VFD_MAIN.pdl"
#define ACT_FP_CVALVE "ACT_CVALVE_MAIN.pdl"
#define ACT_FP_UNIT "ACT_UNIT_MAIN.pdl"
阀的操作小画面在切换画面树后依然存在,这个是怎么做到的,以上c脚本不能理解其含义,向各位侠请教!