wincc图形编译器里的库的按钮修改问题?

请问各位大侠:
 我从图形编译器里的视图->库->全局库->Operation->Toogle Buttons里添加了一个"On_Off_2"的按钮,但是进行事件鼠标动作的时候没有按左键动作,只有鼠标动作;如何添加按左键动作呢?我想在按下左键的时候按钮打到on或者是off,并且弹出一个对话提示框.
  我用的C脚本是 :
 BOOL kk;
 kk=GetTagBit("Toggle");
 if(kk)
  {if (MessageBox(NULL, "您确定要冷热源供水为冷水模式吗?", "供水源选择", MB_YESNO | MB_ICONEXCLAMATION | MB_SETFOREGROUND|MB_SYSTEMMODAL) == IDYES) {
      { SetTagBit("cool_or_heat",0);
         SetTagBit("Toggle",0);
      }
 }
 else 
 {
 if (MessageBox(NULL, "您确定要冷热源供水为热水模式吗?", "供水源选择", MB_YESNO | MB_ICONEXCLAMATION | MB_SETFOREGROUND|MB_SYSTEMMODAL) == IDYES) {
      { SetTagBit("cool_or_heat",1);
         SetTagBit("Toggle",1);
      }

 }

 我刚学WINCC不久,希望各位大侠帮帮忙.谢谢!

问题补充:
谢谢您!我明白了,我以前添加左键时是按了"On_Off_2.鼠标动作",然后才去点的按左键所以就添加不上,现在我明白了.

最佳答案

1.ON_OFF_2是自定义对象,添加左键动作需要如下步骤:
 选择控件->右键->动态对话框,选择"事件"页->鼠标->对象ON_OFF_2->双击事件"按左键"
 上述步骤完成后即为该对象添加了左键动作。
 2.ON_OFF控件不是这样用的,你的脚本虽然可以控制变量切换,但ON_OFF控件并不随你的变量动态变化。具体步骤如下:
 2.1 设置ON_OFF_2的UserDefine->Toggle直接连接变量cool_or_heat
 2.2 将原鼠标动作内的代码改为如下即可(如想放到鼠标左键动作,将代码放置按左键事件内,并将鼠标动作代码删除):
 BOOL value;
 LINKINFO plink;

 PDLRTGetPropEx(0,lpszPictureName,lpszObjectName,"Toggle",VT_BOOL,&value,NULL,NULL,0,NULL,NULL);
 if(value) 
 {
   if (MessageBox(NULL, "您确定要冷热源供水为冷水模式吗?", "供水源选择", MB_YESNO | MB_ICONEXCLAMATION | MB_SETFOREGROUND|MB_SYSTEMMODAL) == IDYES) 
  value =FALSE;
 }
 else 
 {
  if (MessageBox(NULL, "您确定要冷热源供水为热水模式吗?", "供水源选择", MB_YESNO | MB_ICONEXCLAMATION | MB_SETFOREGROUND|MB_SYSTEMMODAL) == IDYES)
  value = TRUE;
 }

 PDLRTGetLink(0,lpszPictureName,lpszObjectName,"Toggle",&plink,NULL,NULL,NULL); //Rueckgabe-Typ :BOOL 

 if (plink.LinkType >2) return;
 else SetTagBit (plink.szLinkName,(short int) value);

提问者对于答案的评价:
谢谢您,运行通过了.

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc276630.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2019年6月11日 下午12:33
下一篇 2019年6月11日 下午12:34

相关推荐

  • 0x80046127:(NULL)

    一直运行正常的WINCC项目,突然出现0x80046127:(NULL)错误。用以前的备份项目覆盖也没有用。这个是怎么回事儿,如何解决呀? 问题补充:我试了一下不能手动启动Serv…

    SIMATIC WinCC 2019年6月11日
  • WINCC项目激活后不会显示

    首先谢谢大家这几天对我的帮助! 现在我把WINCC重新安装之后可以运行了,但是在打开原由的项目的时候前面的运行激活都没有问题,就是在运行起来之后,画面上的按扭全是白色的,…

    SIMATIC WinCC 2019年6月11日
  • wincc 历史数据删除,导致数据不更新了。

    文件夹ArchiveManager中TagLoggingSlow文件夹的内容我删除了2011年以前的文件。再运行程序结果数据不再更新,请问是什么原因?这个方法是否有问题呢? 问题补…

    SIMATIC WinCC 2018年12月14日
  • WinCC C脚本字符串的处理

    char* prefix;char* suffix;char* wcid;char* filename;int i;prefix&…

    SIMATIC WinCC 2019年6月11日
  • wincc中怎样实现导航(不是用按钮)

    看了手册,也看了你个资料,只是知道原来的一个版本可以做导航,现在,V6.2版本的不知道能不能做.怎么做呢?还请不吝赐教!!! 最佳答案 用按钮的你会做吗?如果会做,那么就用按钮。我…

    SIMATIC WinCC 2019年6月11日
  • 客户机访问冗余wincc服务器(加装CP1623卡)用哪张网卡

    如题:400H与wincc冗余(CP1623),两台Wincc冗余,CP1623卡与400H冗余,客户机访问冗余服务器是使用CP1623网络,还是需要服务器上自带的网卡。 最佳答案…

    SIMATIC WinCC 2020年11月1日
  • wincc脚本中的触发器

    麻烦大家帮忙解释一下wincc脚本中触发器的用法。详细一点,谢谢! 最佳答案 定义和使用触发器 触发器用于在运行时执行动作。为此,将触发器与动作相链接以构成对动作进行调用…

    SIMATIC WinCC 2019年6月11日
  • 加不进脚本

    我今天用wincc 6.2做了一个菜单和工具栏,在上午时还能加入好用,但是后来我改了一下脚本程序,在工具栏的加入脚本上把脚本移除后,再就加不进去了,不知道怎么回事? 最佳…

    SIMATIC WinCC 2019年6月11日
  • WinCC置复位问题,求高手解答!

    PLC程序如下图所示,现在用WinCC做个确认和取消确认功能,一个按钮是鼠标左击时DBX1.6置位,松开时复位(确认功能),一个是鼠 标左击时DBX2.0置位,松开时复位…

    SIMATIC WinCC 2019年6月11日
  • WINCC中是否有对字的位进行操作的函数

    wincc中对于每一个二进制变量都建立一个变量,感觉很浪费,有没有函数可以对一个字变量的一个位进行置复位而不对其它的位产生影响。c语言中的位操作除外。。| &^&nbsp…

    SIMATIC WinCC 2019年6月11日