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的值不变。
这样可以么?
展开
 我来答
百度网友b8b3f90
推荐于2018-03-10 · TA获得超过1.5万个赞
知道大有可为答主
回答量:7179
采纳率:94%
帮助的人:3031万
展开全部
#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后才会改变。


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

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式