新手请教,才学用WINCC,在叙述方面可能有不准确,望见谅:最近在一项目中看到别人用C语言写的一个能调整大小的画面窗口,由于本人对C语言不懂,所以请大家帮忙分析下,画面上他用了类似画面模版的做法,解决需要大量弹出画面窗口的地方。如附件图所示,他做的有公共的画面窗口 "CtlValvePopup.pdl",但在画面窗口属性里画面名称却是Valve,请高手帮忙分析下!C如下:
#include "apdefap.h"
void Click(char* lpszPictureName, char* lpszObjectName )
{
// WINCC:TAGNAME_SECTION_START
// syntax: #define TagNameInAction DMTagName
// next TagID : 1
// WINCC:TAGNAME_SECTION_END
// WINCC:PICNAME_SECTION_START
// syntax: #define PicNameInAction PictureName
// next PicID : 1
#define ApcCtlValvePopup_pdl "CtlValvePopup.pdl"
// WINCC:PICNAME_SECTION_END
char PictureWindow_Name[25], *ptrPictureWindow, *ptrVarName;
long int OffsetLeft, OffsetTop;
sprintf(PictureWindow_Name, "PictureWindow%s",lpszObjectName);
ptrPictureWindow = PictureWindow_Name;
OffsetTop= GetTop(lpszPictureName,lpszObjectName); //Return-Type: long int
OffsetLeft= GetLeft(lpszPictureName,lpszObjectName); //Return-Type: long int
//SetHeight(lpszPictureName,ptrPictureWindow,360); //Return-Type :BOOL
//SetWidth(lpszPictureName,ptrPictureWindow,650); //Return-Type :BOOL
if (OffsetTop <420) SetTop(lpszPictureName,ptrPictureWindow,OffsetTop+40);
else SetTop(lpszPictureName,ptrPictureWindow,OffsetTop-100);
if (OffsetLeft <307) SetLeft(lpszPictureName,ptrPictureWindow,10);
else if (OffsetLeft >907) SetLeft(lpszPictureName,ptrPictureWindow,1280-650-20);
else SetLeft(lpszPictureName,ptrPictureWindow,OffsetLeft-300);
SetPictureName(lpszPictureName,ptrPictureWindow,ApcCtlValvePopup_pdl); //Return-Type :BOOL
SetVisible(lpszPictureName,ptrPictureWindow,1); //Return-Type :BOOL
}