close
loading...
loading...
在线情况
  • 2018-08-11 13:20:13
  • 人气:1215
  • 引用回复此帖引用
  • 头像
  • 级别
  • 声望
    +43
  • 魅力
    43
  • 积分
    387
  • 经验
    3180
  • 文章
    31
  • 注册
    2016-08-17
  • 给紫夜言午发消息
wincc二次确认脚本
用WINCC脚本SetTagBit(Tag_Name,1);SetTagBit(Tag_Name,0)我已经实现了按钮的点动,现在需要加入二次确认窗口,防止误操作。要在二次确定窗口有“确认”按钮,要实现点确认置1,随后还能复位为0,请问这个如何实现?
在线情况
  • 头像
  • 级别
  • 积分
    120
  • 经验
    3127
  • 文章
    15
  • 注册
    2011-02-13
  • 给sinestock发消息
我认为做两个内部变量做过度,第一次是赋值给内部变量,第二次从内部变量取值给外部变量,只要窗口关闭,内部变量就设置为0
在线情况
  • 头像
  • 级别
  • 声望
    +4
  • 魅力
    4
  • 积分
    960
  • 经验
    10995
  • 文章
    132
  • 注册
    2013-03-27
  • 给吉巴藤发消息
无论c脚本还还是vbs都有msgbox函数

如果你不知道什么是msgbox,请百度
在线情况
  • 头像
  • 级别
  • 声望
    +192
  • 魅力
    192
  • 积分
    1989
  • 经验
    10369
  • 文章
    150
  • 注册
    2008-11-14
  • 给qhdwjl发消息
messagebox是最简单的途径,在wincc中的messagebox看是c还是basic,两者有点点区别,basic被封装了,也就是messagebox被限制在了当前进程中,而c就比较自由了,它可以把messagebox赋予任何进程(只要你知道进程号,比如可以用微软工具microsoft spy++查看当前所有进程号测试把messagebox注给浏览器什么的)
其次还有一点要说的,如果是多屏显示,比如左右屏幕,左屏幕的子画面进程和右屏幕的进程完全不同,但是如果用messagebox,都会弹出在主屏幕,如果进程在左,则弹出在主屏幕中央,如果锁定右进程,则弹出在主屏幕靠近副屏幕的边界,所以如果是多屏标准的PCS7框架,弹出框最好还是自己画吧
在线情况
  • 头像
  • 级别
  • 声望
    +3
  • 魅力
    3
  • 积分
    476
  • 经验
    4494
  • 文章
    28
  • 注册
    2006-11-08
  • 给xuyifa发消息
[FACE=宋体][SIZE=3]复位置位变量并跳出对话框[/SIZE][/FACE]
[FACE=Times New Roman][SIZE=3]#include "apdefap.h"[/SIZE][/FACE]
[FACE=Times New Roman][SIZE=3]void OnLButtonDown(char* lpszPictureName,char* lpszObjectName, char* lpszPropertyName, UINT nFlags, int x, int y)[/SIZE][/FACE]
[FACE=Times New Roman][SIZE=3]{[/SIZE][/FACE]
[FACE=Times New Roman][SIZE=3] [/SIZE][/FACE]
[FACE=Times New Roman][SIZE=3]#pragma option(mbcs)[/SIZE][/FACE]
[FACE=Times New Roman][SIZE=3] [/SIZE][/FACE]
[FACE=Times New Roman][SIZE=3]// WINCC:TAGNAME_SECTION_START[/SIZE][/FACE]
[FACE=Times New Roman][SIZE=3]// syntax: #define TagNameInAction"DMTagName"[/SIZE][/FACE]
[FACE=Times New Roman][SIZE=3]// next TagID : 1[/SIZE][/FACE]
[SIZE=3][FACE=Times New Roman]#define TAG_0 "dd"//[/SIZE][FACE=宋体]置位变量名[/FACE][/FACE]
[FACE=Times New Roman][SIZE=3]//HWND a=NULL;[/SIZE][/FACE]
[FACE=Times New Roman][SIZE=3]int b;[/SIZE][/FACE]
[SIZE=3][FACE=Times New Roman]//a=FindWindow(NULL,"***[/SIZE][FACE=宋体]对话框[/FACE][FACE=Times New Roman]");[/FACE][/FACE]
[SIZE=3][FACE=Times New Roman]b=MessageBox(NULL,"[/SIZE][FACE=宋体]确定启停设备吗[/FACE][FACE=Times New Roman]([/FACE][FACE=宋体]如按[/FACE][FACE=Times New Roman]<[/FACE][FACE=宋体]是[/FACE][FACE=Times New Roman]>[/FACE][FACE=宋体]设备启停切换[/FACE][FACE=Times New Roman],[/FACE][FACE=宋体]按[/FACE][FACE=Times New Roman]<[/FACE][FACE=宋体]否[/FACE][FACE=Times New Roman]>[/FACE][FACE=宋体]将不变化并退出对话框[/FACE][FACE=Times New Roman])?","[/FACE][FACE=宋体]启停切换对话框[/FACE][FACE=Times New Roman]",MB_YESNO|MB_ICONQUESTION|MB_DEFAULT_DESKTOP_ONLY);[/FACE][/FACE]
[FACE=Times New Roman][SIZE=3]if(b==IDYES)[/SIZE][/FACE]
[FACE=Times New Roman][SIZE=3]if (GetTagBitWait(TAG_0)==1) [/SIZE][/FACE]
[FACE=Times New Roman][SIZE=3]{[/SIZE][/FACE]
[FACE=Times New Roman][SIZE=3]SetTagBitWait(TAG_0,(BOOL)0);[/SIZE][/FACE]
[FACE=Times New Roman][SIZE=3]}[/SIZE][/FACE]
[FACE=Times New Roman][SIZE=3]else[/SIZE][/FACE]
[FACE=Times New Roman][SIZE=3]{[/SIZE][/FACE]
[FACE=Times New Roman][SIZE=3]SetTagBitWait(TAG_0,(BOOL)1);[/SIZE][/FACE]
[FACE=Times New Roman][SIZE=3]}[/SIZE][/FACE]
[FACE=Times New Roman][SIZE=3] [/SIZE][/FACE]
[FACE=Times New Roman][SIZE=3] [/SIZE][/FACE]
[FACE=Times New Roman][SIZE=3]}[/SIZE][/FACE][FACE=Times New Roman][/FACE][SIZE=3][/SIZE][FACE=Microsoft YaHei][/FACE]
偶来学习了
在线情况
  • 头像
  • 级别
  • 声望
    +23
  • 魅力
    23
  • 积分
    886
  • 经验
    8466
  • 文章
    121
  • 注册
    2012-12-18
  • 给超人归来发消息
[QUOTE][b]下面引用由[u]xuyifa[/u]发表的内容:[/b]

复位置位变量并跳出对话框
#include "apdefap.h"
void OnLButtonDown(char* lpszPictureName,char* lpszObjectName, c...[/QUOTE]

弹出二次确认窗口后,点击屏幕其他区域后,刚弹出的窗口被覆盖到底层看不见了,怎样让弹出的二次确认窗口一直置顶?
在线情况
  • 头像
  • 级别
  • 声望
    +192
  • 魅力
    192
  • 积分
    1989
  • 经验
    10369
  • 文章
    150
  • 注册
    2008-11-14
  • 给qhdwjl发消息
不要用默认的NULL,GET当前线程就可以了
在线情况
  • 头像
  • 级别
  • 声望
    +4
  • 魅力
    3
  • 积分
    5523
  • 经验
    50868
  • 文章
    2146
  • 注册
    2004-04-27
  • 给yzdatou发消息
严重同意4楼的意见
单个屏幕用msgbox函数就可以了
多屏幕最好模仿pcs7的面板风格做
有生之年,狭路相逢,终不能幸免。
loading...
loading...
loading...
loading...
loading...
loading...
回复帖子 注意: *为必填项
*验证信息 用户名 密码 验证码 注册新用户
*帖子名称 长度不得超过255字
内容(最大25K)
是否是UBB代码
内容支持插入UBB标签
使用方法请参考帮助
其它选项 显示签名 锁定帖子 Alt+S或Ctrl+Enter快速提交
 
Powered by LeadBBS 6.0.
Page created in 1.2031 seconds with 8 queries.