?? calc.c
字號(hào):
#include "toolbox.h"
#include <utility.h>
#include "smartread4.h"
#include <formatio.h>
#include <ansi_c.h>
#include <cvirte.h>
#include <userint.h>
#include "calc.h"
static int aboutpanelhandle;
static int menubarhandle;
static int panelHandle;
static char str1[50];
static char str2[50];
static double strvalue1;
static double strvalue2;
static double strvalue3;
static topflag=0; //顯示在最前方
static int flag;
void setvalue (void);
int main (int argc, char *argv[])
{
if (InitCVIRTE (0, argv, 0) == 0)
return -1; /* out of memory */
if ((panelHandle = LoadPanel (0, "calc.uir", PANEL)) < 0)
return -1;
DisplayPanel (panelHandle);
menubarhandle = GetPanelMenuBar (panelHandle);
SmartRead_InitialAuth (panelHandle, -1, -1, -1, "", "","", "");
RunUserInterface ();
DiscardPanel (panelHandle);
return 0;
}
int CVICALLBACK panelcb (int panel, int event, void *callbackData,
int eventData1, int eventData2)
{
switch (event)
{
case EVENT_RIGHT_CLICK:
RunPopupMenu (GetPanelMenuBar (panelHandle), MENUBAR_EDIT, panelHandle, eventData1, eventData2, 0, 0, 0, 0);
break;
case EVENT_CLOSE:
SmartRead_Close();
QuitUserInterface (0);
break;
}
return 0;
}
int CVICALLBACK clear (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2)
{
switch (event)
{
case EVENT_COMMIT:
str1[0]='\0';
str2[0]='\0';
strvalue1=0;
strvalue2=0;
strvalue3=0;
flag=0;
SetCtrlVal (panelHandle, PANEL_STRING, "");
SmartRead_Speak("清零", 11, 0, -1, -1, 1, "");
break;
}
return 0;
}
int CVICALLBACK cmd_7 (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2)
{
char labeltext[2];
switch (event)
{
case EVENT_COMMIT:
GetCtrlAttribute (panelHandle, PANEL_CMD_7, ATTR_LABEL_TEXT, labeltext);
SmartRead_Speak("7", 11, 0, -1, -1, 1, "");
strcat (str1, labeltext);
setvalue ();
break;
}
return 0;
}
int CVICALLBACK cmd_8 (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2)
{
char labeltext[2];
switch (event)
{
case EVENT_COMMIT:
GetCtrlAttribute (panelHandle, PANEL_CMD_8, ATTR_LABEL_TEXT, labeltext);
SmartRead_Speak("8", 11, 0, -1, -1, 1, "");
strcat (str1, labeltext);
setvalue ();
break;
}
return 0;
}
int CVICALLBACK cmd_9 (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2)
{
char labeltext[2];
switch (event)
{
case EVENT_COMMIT:
GetCtrlAttribute (panelHandle, PANEL_CMD_9, ATTR_LABEL_TEXT, labeltext);
SmartRead_Speak("9", 11, 0, -1, -1, 1, "");
strcat (str1, labeltext);
setvalue ();
break;
}
return 0;
}
int CVICALLBACK cmd_4 (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2)
{
char labeltext[2];
switch (event)
{
case EVENT_COMMIT:
GetCtrlAttribute (panelHandle, PANEL_CMD_4, ATTR_LABEL_TEXT, labeltext);
SmartRead_Speak("4", 11, 0, -1, -1, 1, "");
strcat (str1, labeltext);
setvalue ();
break;
}
return 0;
}
int CVICALLBACK cmd_5 (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2)
{
char labeltext[2];
switch (event)
{
case EVENT_COMMIT:
GetCtrlAttribute (panelHandle, PANEL_CMD_5, ATTR_LABEL_TEXT, labeltext);
SmartRead_Speak("5", 11, 0, -1, -1, 1, "");
strcat (str1, labeltext);
setvalue ();
break;
}
return 0;
}
int CVICALLBACK cmd_6 (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2)
{
char labeltext[2];
switch (event)
{
case EVENT_COMMIT:
GetCtrlAttribute (panelHandle, PANEL_CMD_6, ATTR_LABEL_TEXT, labeltext);
SmartRead_Speak("6", 11, 0, -1, -1, 1, "");
strcat (str1, labeltext);
setvalue ();
break;
}
return 0;
}
int CVICALLBACK cmd_1 (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2)
{
char labeltext[2];
switch (event)
{
case EVENT_COMMIT:
GetCtrlAttribute (panelHandle, PANEL_CMD_1, ATTR_LABEL_TEXT, labeltext);
SmartRead_Speak("1", 11, 0, -1, -1, 1, "");
strcat (str1, labeltext);
setvalue ();
break;
}
return 0;
}
int CVICALLBACK cmd_2 (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2)
{
char labeltext[2];
switch (event)
{
case EVENT_COMMIT:
GetCtrlAttribute (panelHandle, PANEL_CMD_2, ATTR_LABEL_TEXT, labeltext);
SmartRead_Speak("2", 11, 0, -1, -1, 1, "");
strcat (str1, labeltext);
setvalue ();
break;
}
return 0;
}
int CVICALLBACK cmd_3 (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2)
{
char labeltext[2];
switch (event)
{
case EVENT_COMMIT:
GetCtrlAttribute (panelHandle, PANEL_CMD_3, ATTR_LABEL_TEXT, labeltext);
SmartRead_Speak("3", 11, 0, -1, -1, 1, "");
strcat (str1, labeltext);
setvalue ();
break;
}
return 0;
}
int CVICALLBACK cmd_0 (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2)
{
char labeltext[2];
switch (event)
{
case EVENT_COMMIT:
GetCtrlAttribute (panelHandle, PANEL_CMD_0, ATTR_LABEL_TEXT, labeltext);
SmartRead_Speak("0", 11, 0, -1, -1, 1, "");
strcat (str1, labeltext);
setvalue ();
break;
}
return 0;
}
int CVICALLBACK cmd_dot (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2)
{
char labeltext[2];
switch (event)
{
case EVENT_COMMIT:
GetCtrlAttribute (panelHandle, PANEL_CMD_DOT, ATTR_LABEL_TEXT, labeltext);
SmartRead_Speak(".", 11, 0, -1, -1, 1, "");
strcat (str1, labeltext);
setvalue ();
break;
}
return 0;
}
int CVICALLBACK cmd_div (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2)
{
switch (event)
{
case EVENT_COMMIT:
SmartRead_Speak("除以", 11, 0, -1, -1, 1, "");
GetCtrlVal (panelHandle, PANEL_STRING, str1);
Fmt (&strvalue1, "%f<%s", str1);
str1[0]='\0';
SetCtrlVal (panelHandle, PANEL_STRING, "");
flag=4;
break;
}
return 0;
}
int CVICALLBACK cmd_mul (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2)
{
switch (event)
{
case EVENT_COMMIT:
SmartRead_Speak("乘以", 11, 0, -1, -1, 1, "");
GetCtrlVal (panelHandle, PANEL_STRING, str1);
Fmt (&strvalue1, "%f<%s", str1);
str1[0]='\0';
SetCtrlVal (panelHandle, PANEL_STRING, "");
flag=3;
break;
}
return 0;
}
int CVICALLBACK cmd_minus (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2)
{
switch (event)
{
case EVENT_COMMIT:
SmartRead_Speak("減去", 11, 0, -1, -1, 1, "");
GetCtrlVal (panelHandle, PANEL_STRING, str1);
Fmt (&strvalue1, "%f<%s", str1);
str1[0]='\0';
SetCtrlVal (panelHandle, PANEL_STRING, "");
flag=2;
break;
}
return 0;
}
int CVICALLBACK cmd_plus (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2)
{
switch (event)
{
case EVENT_COMMIT:
SmartRead_Speak("加上", 11, 0, -1, -1, 1, "");
GetCtrlVal (panelHandle, PANEL_STRING, str1);
Fmt (&strvalue1, "%f<%s", str1);
str1[0]='\0';
SetCtrlVal (panelHandle, PANEL_STRING, "");
flag=1;
break;
}
return 0;
}
int CVICALLBACK cmd_sqrt (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2)
{
switch (event)
{
case EVENT_COMMIT:
SmartRead_Speak("開方等于", 11, 0, -1, -1, 1, "");
Delay (1.5);
GetCtrlVal (panelHandle, PANEL_STRING, str1);
Fmt (&strvalue1, "%f<%s", str1);
str1[0]='\0';
SetCtrlVal (panelHandle, PANEL_STRING, "");
strvalue2=sqrt(strvalue1);
Fmt (str2, "%s<%f", strvalue2);
SetCtrlVal (panelHandle, PANEL_STRING, str2);
SmartRead_Speak(str2, 11, 0, -1, -1, 1, "");
str2[0]='\0';
break;
}
return 0;
}
int CVICALLBACK cmd_percent (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2)
{
switch (event)
{
case EVENT_COMMIT:
SmartRead_Speak("等于", 11, 0, -1, -1, 1, "");
Delay (1);
GetCtrlVal (panelHandle, PANEL_STRING, str1);
Fmt (&strvalue1, "%f<%s", str1);
str1[0]='\0';
SetCtrlVal (panelHandle, PANEL_STRING, "");
strvalue2=100*(strvalue1);
Fmt (str2, "%s<%f", strvalue2);
strcat (str2, "%");
SetCtrlVal (panelHandle, PANEL_STRING, str2);
SmartRead_Speak(str2, 11, 0, -1, -1, 1, "");
str2[0]='\0';
break;
}
return 0;
}
int CVICALLBACK cmd_daoshu (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2)
{
switch (event)
{
case EVENT_COMMIT:
SmartRead_Speak("倒數(shù)等于", 11, 0, -1, -1, 1, "");
Delay (1.5);
GetCtrlVal (panelHandle, PANEL_STRING, str1);
Fmt (&strvalue1, "%f<%s", str1);
str1[0]='\0';
SetCtrlVal (panelHandle, PANEL_STRING, "");
strvalue2=1/(strvalue1);
Fmt (str2, "%s<%f", strvalue2);
SetCtrlVal (panelHandle, PANEL_STRING, str2);
SmartRead_Speak(str2, 11, 0, -1, -1, 1, "");
str2[0]='\0';
break;
}
return 0;
}
int CVICALLBACK cmd_equal (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2)
{
switch (event)
{
case EVENT_COMMIT:
SmartRead_Speak("等于", 11, 0, -1, -1, 1, "");
Delay (1);
GetCtrlVal (panelHandle, PANEL_STRING, str1);
Fmt (&strvalue2, "%f<%s", str1);
str1[0]='\0';
SetCtrlVal (panelHandle, PANEL_STRING, "");
switch (flag)
{
case 1:
strvalue3=strvalue1+strvalue2;
Fmt (str2, "%s<%f", strvalue3);
SetCtrlVal (panelHandle, PANEL_STRING, str2);
SmartRead_Speak(str2, 11, 0, -1, -1, 1, "");
str2[0]='\0';
break;
case 2:
strvalue3=strvalue1-strvalue2;
Fmt (str2, "%s<%f", strvalue3);
SetCtrlVal (panelHandle, PANEL_STRING, str2);
SmartRead_Speak(str2, 11, 0, -1, -1, 1, "");
str2[0]='\0';
break;
case 3:
strvalue3=strvalue1*strvalue2;
Fmt (str2, "%s<%f", strvalue3);
SetCtrlVal (panelHandle, PANEL_STRING, str2);
SmartRead_Speak(str2, 11, 0, -1, -1, 1, "");
str2[0]='\0';
break;
case 4:
strvalue3=strvalue1/strvalue2;
Fmt (str2, "%s<%f", strvalue3);
SetCtrlVal (panelHandle, PANEL_STRING, str2);
SmartRead_Speak(str2, 11, 0, -1, -1, 1, "");
str2[0]='\0';
break;
default:
break;
}
break;
}
return 0;
}
void CVICALLBACK editcopy (int menuBar, int menuItem, void *callbackData,
int panel)
{
char strings[50];
GetCtrlVal (panelHandle, PANEL_STRING, strings);
ClipboardPutText (strings);
}
void CVICALLBACK editexit (int menuBar, int menuItem, void *callbackData,
int panel)
{
QuitUserInterface (0);
}
void CVICALLBACK editalwaystop (int menuBar, int menuItem, void *callbackData,
int panel)
{
if (topflag)
{
SetMenuBarAttribute (menubarhandle, MENUBAR_EDIT_EDITALWATYSTOP, ATTR_CHECKED, 0);
SetPanelAttribute (panelHandle, ATTR_FLOATING, VAL_FLOAT_NEVER);
topflag=0;
}
else
{
SetMenuBarAttribute (menubarhandle, MENUBAR_EDIT_EDITALWATYSTOP, ATTR_CHECKED, 1);
SetPanelAttribute (panelHandle, ATTR_FLOATING, VAL_FLOAT_ALWAYS);
topflag=1;
}
}
void CVICALLBACK helpabout (int menuBar, int menuItem, void *callbackData,
int panel)
{
unsigned long availablevirtual;
unsigned long availablepagefile;
unsigned long availablephysical;
unsigned long totalvirtal;
unsigned long totalpagefile;
unsigned long totalphysical;
unsigned long percentload;
char tp[50];
aboutpanelhandle = LoadPanel (0, "calc.uir", PANEL_ABOU);
InstallPopup (aboutpanelhandle);
GetMemoryInfo (&percentload, &totalphysical, &totalpagefile, &totalvirtal, &availablephysical, &availablepagefile, &availablevirtual);
totalphysical=totalphysical/1000;
Fmt (tp, "%s<%d", totalphysical);
strcat (tp, " KB");
SetCtrlVal (aboutpanelhandle, PANEL_ABOU_TEXTMSG_MEMO, tp);
}
void setvalue (void)
{
SetCtrlVal (panelHandle, PANEL_STRING, "");
SetCtrlVal (panelHandle, PANEL_STRING, str1);
}
int CVICALLBACK ok (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2)
{
switch (event)
{
case EVENT_COMMIT:
DiscardPanel (aboutpanelhandle);
break;
}
return 0;
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -