|
WinCC自带的登录界面不太好看,和这个看脸的时代显得有点不太协调。
图1 WinCC登录对话框不过好在WinCC比较开放。我们完全可以自己实现不同风格的登录界面。首先准备两个文本类型的内部变量,分别用于存储用户名和密码。
图2 内部变量然后再准备登录界面。两个I/O域分别绑定上图中两个内部变量。
图3 自定义登录界面其中密码输入框的属性“隐藏输入”需要设置为“是“。
图4 设置属性选中“退出“按钮,在它的鼠标左键点击事件中输入下面代码。#include "apdefap.h"void OnLButtonDown(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName, UINT nFlags, int x, int y){#pragma code ("useadmin.dll")#include "PWRT_api.h"#pragma code()//退出登录PWRTLogout();//清空用户名和密码SetTagChar("UserName",""); SetTagChar("Pst","");}
再选中“确定“按钮,在它的鼠标左键点击事件中输入下面代码。#include "apdefap.h"void OnLButtonDown(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName, UINT nFlags, int x, int y){
#pragma option(mbcs)
#include"USEGENAP.H"#pragma code("UseAdmin.DLL")#include"pwrt_api.h"#pragma code ()
if(PWRTSilentLogin(GetTagChar("UserName"),GetTagChar("Pst"))==FALSE){ MessageBox(NULL,"用户名或密码错误,请重新输入!","警告",MB_ICONEXCLAMATION|MB_SYSTEMMODAL); //如果输入错误就清除用户名和密码 SetTagChar("UserName",""); //Return-Type: BOOL SetTagChar("Pst",""); //Return-Type: BOOL
}else{
//登录成功的处理代码 //比如切换画面。。。。
}}运行效果下图所示。
图5 运行效果本例使用了内部变量配合I/O域来获取用户名和密码。我们也可以使用文本框控件或者第三方控件直接获取输入的用户名和密码,这样可以不需要内部变量。
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?注册哦
x
|