wincc弹出输入确认对话框。c动作怎么编译呢?完整点解释 谢谢
不好意思,没看明白,能解释下你的变量是怎么设置的么?我按照下面做的:打开I/O域属性,属性中的输出/输入的输出值选择动态对话框然后选择Tag1,选择数据类型为“直接”。然...
不好意思,没看明白,能解释下你的变量是怎么设置的么?我按照下面做的:
打开 I/O 域属性,属性中的输出/输入的输出值选择动态对话框然后选择 Tag1 ,选择数据类型为“直接”。然后在I/O域事件的输出/输入的输入值的更改中选择直接连接,来源默认,目标选择 Tag2 。
这样I/O域显示 Tag1 的值,但输入时将值写入 Tag2 。
2、然后在I/O 域的键盘释放事件中写入如下C代码:
int tag2=GetTagByte("tag2");
if (nChar==13)
{
int x=MessageBox(NULL,"ok","message",MB_YESNOCANCEL)
if(x==IDYES)
{
SetTagByte("Tag1",tag2);
}
}
这样在输入tag1的值的时候就需要确认,如果不确认的话tag2中的数据变化,tag1的值不变。
这样可以么? 展开
打开 I/O 域属性,属性中的输出/输入的输出值选择动态对话框然后选择 Tag1 ,选择数据类型为“直接”。然后在I/O域事件的输出/输入的输入值的更改中选择直接连接,来源默认,目标选择 Tag2 。
这样I/O域显示 Tag1 的值,但输入时将值写入 Tag2 。
2、然后在I/O 域的键盘释放事件中写入如下C代码:
int tag2=GetTagByte("tag2");
if (nChar==13)
{
int x=MessageBox(NULL,"ok","message",MB_YESNOCANCEL)
if(x==IDYES)
{
SetTagByte("Tag1",tag2);
}
}
这样在输入tag1的值的时候就需要确认,如果不确认的话tag2中的数据变化,tag1的值不变。
这样可以么? 展开
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后才会改变。
你可以测试一下你的代码,看看你的代码能否运行正确。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询