请问在wincc中全局脚本中怎么获得某个画面的某个对象的属性?
画面中有个文字对象想做动态的滚动。按钮脚本如下,已经测试可以了,想在全局脚本中,周期性的触发。
#include "apdefap.h"
void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
{
#define ZeroPos 1680 //屏幕宽
#define Length 800
#define Step 5
int pos = 0;
pos = GetLeft(lpszPictureName,"text1");
if ( pos < ZeroPos )
{
pos+=Step;
SetLeft(lpszPictureName,"text1",pos);
}
if ( pos > ZeroPos )
{
pos=0;
SetLeft(lpszPictureName,"text1",pos-200);//200是文本的宽度
}
}
望专家指点。
还有wincc中声音报警的的脚本谁能提供一下,声音是我另外的某个文件。
最佳答案
1.在全局脚本中,只要将lpszPictureName改为对应的画面名称即可。,比如:SetLeft("Roller.PDL","text1",pos);
2.声音报警脚本:
#pragma code("Winmm.dll")
VOID WINAPI PlaySoundA(char* pszSound,char* hmode,DWORD dwFlag);
#pragma code( )
PlaySoundA("D:\\MySound.wav",NULL,1);
PlaySoundA的详情请见:
http://baike.baidu.com/view/1014003.htm
To楼下:加到C脚本的最开始处。
提问者对于答案的评价:
很好,每次都是准确的回答我的问题。谢谢!
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc275790.html