📄 pwdemo.c
字号:
#include <cvirte.h> /* Needed if linking in external compiler; harmless otherwise */#include <ansi_c.h>#include <userint.h>#include "pwdemo.h"#include "pwctrl.h"int thePanel;int thePasswordCtrl;char passwordValue[MAX_POSSIBLE_PASSWORD_LENGTH + 1];int maxPasswordLength;char maskCharacter[2];static void GetPasswordAttributes(void);static void SetPasswordAttributes(void);/*************************************************************/int main (int argc, char *argv[]){ if (InitCVIRTE (0, argv, 0) == 0) /* Needed if linking in external compiler; harmless otherwise */ return -1; /* out of memory */ thePanel = LoadPanel(0, "pwdemo.uir", PANEL); /* This function is all it takes to convert a string control into a password control */ thePasswordCtrl = PasswordCtrl_ConvertFromString(thePanel, PANEL_PASSWORD); GetPasswordAttributes(); /* update the attribute fields on the panel */ DisplayPanel(thePanel); RunUserInterface(); DiscardPanel(thePanel); return 0;}/*************************************************************/int CVICALLBACK PasswordCallback (int panel, int control, int event, void *callbackData, int eventData1, int eventData2){ char message[MAX_POSSIBLE_PASSWORD_LENGTH+300]; switch (event) { case EVENT_COMMIT: PasswordCtrl_GetAttribute(panel, control, ATTR_PASSWORD_VAL, passwordValue); sprintf(message, "EVENT COMMIT received for the password control\n\n" "The value of the password is '%s'.", passwordValue); MessagePopup("Notification: Password Was Entered", message); break; } return 0;}/*************************************************************/int CVICALLBACK QuitCallback (int panel, int control, int event, void *callbackData, int eventData1, int eventData2){ switch (event) { case EVENT_COMMIT: /* the quit button was pushed, exit the program */ QuitUserInterface(0); break; } return 0;}/*************************************************************/ /* Get the password attribute settings specified by the user and apply them to the password control. */static void SetPasswordAttributes(void){ GetCtrlVal(thePanel, PANEL_MAXLENGTH, &maxPasswordLength); GetCtrlVal(thePanel, PANEL_PWVALUE, passwordValue); GetCtrlVal(thePanel, PANEL_MASK, maskCharacter); PasswordCtrl_SetAttribute(thePanel, thePasswordCtrl, ATTR_PASSWORD_MASK_CHARACTER, maskCharacter[0]); PasswordCtrl_SetAttribute(thePanel, thePasswordCtrl, ATTR_PASSWORD_MAX_LENGTH, maxPasswordLength); PasswordCtrl_SetAttribute(thePanel, thePasswordCtrl, ATTR_PASSWORD_VAL, passwordValue);}/*************************************************************/int CVICALLBACK SetAttributesCallback (int panel, int control, int event, void *callbackData, int eventData1, int eventData2){ switch (event) { case EVENT_COMMIT: SetPasswordAttributes(); GetPasswordAttributes(); break; } return 0;}/*************************************************************/ /* Get the current values of the password control's attributes and display them to the user. */static void GetPasswordAttributes(void){ PasswordCtrl_GetAttribute(thePanel, thePasswordCtrl, ATTR_PASSWORD_MAX_LENGTH, &maxPasswordLength); PasswordCtrl_GetAttribute(thePanel, thePasswordCtrl, ATTR_PASSWORD_VAL, passwordValue); PasswordCtrl_GetAttribute(thePanel, thePasswordCtrl, ATTR_PASSWORD_MASK_CHARACTER, &maskCharacter[0]); maskCharacter[1] = 0; /* null terminator for c-string */ SetCtrlVal(thePanel, PANEL_MAXLENGTH, maxPasswordLength); SetCtrlVal(thePanel, PANEL_PWVALUE, passwordValue); SetCtrlVal(thePanel, PANEL_MASK, maskCharacter);}/*************************************************************/int CVICALLBACK GetAttributesCallback (int panel, int control, int event, void *callbackData, int eventData1, int eventData2){ switch (event) { case EVENT_COMMIT: GetPasswordAttributes(); break; } return 0;}/*************************************************************/int CVICALLBACK HelpCallback (int panel, int control, int event, void *callbackData, int eventData1, int eventData2){ switch (event) { case EVENT_COMMIT: MessagePopup("Help For Password Control Test", "This program demonstrates and tests the PWCTRL instrument\n" "driver. This instrument driver can be used to create\n" "password controls from your program or to convert existing\n" "string controls into password controls.\n\n" "To use the PWCTRL instrument, include pwctrl.fp in your\n" "project, or load it from the Instruments menu.\n\n" "The help for the driver is included in its function panels\n\n" ); break; } return 0;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -