C脚本注解

以下是Demo程序退出画面的两个按钮的脚本,不太会C语言,看不明白,麻烦哪位大侠给注解一下,万分感谢!
 按钮1:
 #include "apdefap.h"
 void OnLButtonDown(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName, UINT nFlags, int x, int y)
 {
 int i, j, n;
 char pic_name[256];
 char obj_name[60];

  n = strlen( lpszPictureName );

 for ( i = n; i > 0; i-- )
   if ( lpszPictureName[i] == '.' )
     {
     strncpy( pic_name, lpszPictureName, i );
     strcpy( obj_name, &lpszPictureName[i+1] );
     for ( j = 0; j < (n-i); j++)
       if ( obj_name[j] == ':' )
         {
         obj_name[j] = '\0';
         break;
         }
     SetVisible(pic_name,obj_name,FALSE);
     break;
     }

 }

 按钮2:
 #include "apdefap.h"
 void OnLButtonDown(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName, UINT nFlags, int x, int y)
 {

 #define ApcRT_Start_Stop "RT_Start_Stop"
 #define ApcRT_Stat "RT_Stat"

 
 #pragma code ("kernel32.dll")
 WINBASEAPI VOID WINAPI Sleep(DWORD dwMilliseconds);
 #pragma code ()

 SetTagBit(ApcRT_Stat ,1);
 SetTagBit(ApcRT_Start_Stop,1-GetTagBit(ApcRT_Start_Stop));
 Sleep(3000);

 DeactivateRTProject ();

 }

最佳答案

#include "apdefap.h"
 void OnLButtonDown(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName, UINT nFlags, int x, int y)
 {
 int i, j, n;                           //定义整型变量
 char pic_name[256];                     //定义字符串,长度是256个字节
 char obj_name[60];                      //定义字符串,长度是60个字节

  n = strlen( lpszPictureName );               //将lpszPictureName的长度付给n

 for ( i = n; i > 0; i-- )                           //for循环从n开始递减
   if ( lpszPictureName[i] == '.' )                   //如果lpszPictureName的第i的字符等于'.',则执行以下语句
     {
     strncpy( pic_name, lpszPictureName, i );      //将lpszPictureName的前i的字符拷贝给pic_name
     strcpy( obj_name, &lpszPictureName[i+1] );
     for ( j = 0; j < (n-i); j++)
       if ( obj_name[j] == ':' )
         {
         obj_name[j] = '\0';
         break;
         }
     SetVisible(pic_name,obj_name,FALSE);     //设置对象属性为不可见
     break;
     }

 }
 

提问者对于答案的评价:
谢谢!

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

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

相关推荐

  • WINCC与400通讯

    现在有个项目:WINCC通过CP443-1对416F-2 监控 问题1:要在416F-2上编写通讯程序吗,还是直接在WINCC组态好就行了?问题2:组态的时候,…

    SIMATIC WinCC 2019年6月11日
  • VBS编程执行顺序问题

    我用VBS编些脚本,出现一个问题,就是在执行一个事件的时候,为什么只有执行完当前事件才能执行其他事件。譬如说,我定义两个按钮,对应画面上不同对象的动作,我点击第一个按钮,执行相应脚…

    SIMATIC WinCC 2019年6月11日
  • STEP 7中PC Station设置

    在文档《RedConnect 使用入门》中,为什么给PC station插入的是user appliction 下的application。…

    2018年12月5日
  • wincc 向excel写数据

    我用wincc向excel写数据,当IO域中的对像变化时就向EXCLE写一组数据,于是在io域的’事件’ 中的 ‘ 其他’ 中 的…

    SIMATIC WinCC 2019年6月11日
  • OPC Server与WinCC6.0通信“接收超时错误”?

    我现在正在做一个项目:一台上位机(WinCC6.0版本),5个三菱PLC子系统。上位机和PLC通信时,我采用了三菱的OPC Server软件由RS485串口通信模式进行通…

    SIMATIC WinCC 2021年7月5日
  • wincc flexible中图片颜色失真

    我在项目中将原来的触摸屏类型从MP277改为了MP370,可是原来的彩色图片却出现了失真的现象,可是将该图片导出来编辑的时候图形却正常。图片格式为24位位图BMP。请问大家怎样才能…

    SIMATIC WinCC 2019年6月11日
  • CP443不能与WINCC通信

    我的系统配置如下:现在共7套PLC系统,现其中一套PLC(CPU414,其他为300的),CPU414,CP443-1,程序和组态配置好了,WINCC配置了,但是就是不能通信!我是…

    SIMATIC WinCC 2019年6月11日
  • 谁有中文版的错误解释0x80046127_d.pdf

    http://cache.automation.siemens.com/dnl/zc/zc2NDM5NwAA_6836122_FAQ/V6_0x80046127_d.pdf 最佳答…

    SIMATIC WinCC 2019年6月11日
  • TIA WINCC授权登录问题

    想实现这样一个功能:TIA WINCC14当项目运行时需要设置登录账号和密码,问题的关键在于这个密码有时间期限,比如一个月,三个月,半年,时间到了,提前三天定期的弹出对话…

    SIMATIC WinCC 2021年7月5日
  • 组态大量报警记录的问题

    我有几百个报警记录要输入报警记录中,有没有什么好办法快速组态?我一个个输,头都大了 请高手指点 谢谢 最佳答案 1.建议您使用WinCC Config…

    SIMATIC WinCC 2019年6月11日