📄 sample4_4.c
字号:
#include <ansi_c.h>#include <cvirte.h> /* Needed if linking in external compiler; harmless otherwise */#include <userint.h>#include "sample4_4.h"static int panelHandle;char pass1[15],pass2[15];char maskKey;int getPassword(char *buf,int eventData1,int *peventData2) ;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 */ if ((panelHandle = LoadPanel (0, "sample4_4.uir", PANEL)) < 0) return -1; DisplayPanel (panelHandle); GetCtrlVal (panelHandle, PANEL_RING, &maskKey); RunUserInterface (); return 0;}//callback of text box for confirm password int CVICALLBACK password2 (int panel, int control, int event, void *callbackData, int eventData1, int eventData2){ switch (event) { case EVENT_KEYPRESS: return getPassword(pass2,eventData1,&eventData2); } return 0;}//callback of text box for password int CVICALLBACK password1 (int panel, int control, int event, void *callbackData, int eventData1, int eventData2){ switch (event) { case EVENT_KEYPRESS: return getPassword(pass1,eventData1,&eventData2); } return 0; }int CVICALLBACK Exit (int panel, int control, int event, void *callbackData, int eventData1, int eventData2){ switch (event) { case EVENT_COMMIT: QuitUserInterface (0); break; } return 0;}int CVICALLBACK mask (int panel, int control, int event, void *callbackData, int eventData1, int eventData2){ switch (event) { case EVENT_COMMIT: GetCtrlVal (panelHandle, PANEL_RING, &maskKey); break; } return 0;}//callback of confirm buttonint CVICALLBACK Compare (int panel, int control, int event, void *callbackData, int eventData1, int eventData2){ char buf1[100],*buf2; char temp1[]={"your input is right"},temp2[]={"your input is wrong"}; int flagError=0; switch (event) { case EVENT_COMMIT: if(strcmp(pass1,pass2)==0) { buf2=temp1; flagError=0; } else { buf2=temp2; flagError=1; } sprintf(buf1,"The password you input is %s,\nthe confirm password is %s,\n%s",pass1,pass2,buf2); MessagePopup("Message Box",buf1); if(flagError==0) QuitUserInterface (0); else { pass1[0]='\0'; pass2[0]='\0'; SetCtrlVal (panelHandle, PANEL_STRING1, ""); SetCtrlVal (panelHandle, PANEL_STRING2, ""); } break; } return 0;}//set text box mask function int getPassword(char *buf,int eventData1,int *peventData2){ char asciiCode; int virtualKey; /* cursor keys, function keys, esc, enter, etc.. are virtual keys */ int swallowEvent = 0; /* 0 means DO NOT swallow (ignore) the event, only mouse and key event can be swallowed */ int len; char temp[2]={""}; asciiCode = eventData1 & VAL_ASCII_KEY_MASK; /* key masks are defined in userint.h */ virtualKey = eventData1 & VAL_VKEY_MASK; /* if the key was an ascii key and the menukey (ctrl on the PC) was not pressed */ if (asciiCode != 0 && (eventData1 & VAL_MENUKEY_MODIFIER) == 0) { //set the max length of password len=strlen(buf); if(len>10) return 1; //swallow the event temp[0]=asciiCode; strcat(buf,temp); (**(int **)peventData2) = maskKey; } else if (virtualKey > 0) /* check for and swallow cursor key events */ { switch (virtualKey) { case VAL_UP_ARROW_VKEY: case VAL_DOWN_ARROW_VKEY: case VAL_LEFT_ARROW_VKEY: case VAL_RIGHT_ARROW_VKEY: case VAL_HOME_VKEY: case VAL_END_VKEY: swallowEvent = 1; break; case VAL_BACKSPACE_VKEY: len=strlen(buf); if(len>0) buf[len-1]='\0'; break; } } return swallowEvent; }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -