wincc弹出输入确认对话框。c动作怎么编译呢?完整点解释 谢谢

2024-11-23 00:51:20
推荐回答(1个)
回答(1):

#include "apdefap.h"
void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
{
#pragma option(mbcs)
HWND hWnd=NULL;
int iRet;

hWnd=FindWindow(NULL,"Wincc- Runtime-"); 
iRet=MessageBox(hWnd,"Turn ON Lamp?","ASK FOR YOU",MB_YESNO|MB_ICONQUESTION|MB_APPLMODAL);

if(iRet==IDYES)
{
      SetTagBit("LAMP_1",1);
}
else
{
     SetTagBit("LAMP_1",0);
}
}

 为了测试上的方便,我在画面中放置了2个IO域,分别连接IntValue_1和intValue_2,为了描述上的方便,将连接intValue_1的称作A域,另外一个称作B域。

我在A域的事件Events》》OUtput/Input》》InputValue》》Change事件中编写了如下代码:

#include "apdefap.h"
void OnPropertyChanged(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName,  char*  value)
{
#pragma option(mbcs)

HWND hWnd=NULL;
int iRet;

hWnd=FindWindow(NULL,"Wincc-Runtime-");
iRet=MessageBox(hWnd,"OK?","ASK FOR YOU",MB_YESNO|MB_ICONQUESTION|MB_APPLMODAL);

if(iRet==IDYES)
{
    SetTagWord("intValue_2",GetTagSWord("intValue_1")); //Return-Type: BOOL 
 

}

}

这样B域会在A域改变并在确认对话框中点YES后才会改变。


你可以测试一下你的代码,看看你的代码能否运行正确。