📄 basic3.c
字号:
case '2' : /***反显***/
case '0' : /***清除所画圆***/
GraphSetBKMode((MDC*)hEditWin,BKMODE_NOT);
break;
case '1' : /***画圆***/
break;
case '3' : /***或***/
GraphSetBKMode((MDC*)hEditWin,BKMODE_OR);
break;
case '4' : /***与***/
GraphSetBKMode((MDC*)hEditWin,BKMODE_AND);
break;
case '5' : /***异或***/
GraphSetBKMode((MDC*)hEditWin,BKMODE_XOR);
break;
default :
serror(0);
}
if (*(option1+1)=='0') /***不填充***/
GraphDrawCircle((MDC *)hEditWin,atoi(value1+1)-atoi(value3+1),atoi(value2+1)-atoi(value3+1),atoi(value1+1)+atoi(value3+1),atoi(value2+1)+atoi(value3+1));
else if (*(option1+1)=='1') /***填充***/
GraphFillCircle((MDC *)hEditWin,atoi(value1+1)-atoi(value3+1),atoi(value2+1)-atoi(value3+1),atoi(value1+1)+atoi(value3+1),atoi(value2+1)+atoi(value3+1));
else
serror(0);
GraphSetBKMode((MDC*)hEditWin,saveBKMode);
if (save!=(char *)Null) *save = ')';
}
FAR void exec_ellipse()
{
UInt8 *hEditWin, saveBKMode;
char *value1, *value2, *value3, *value4, *option1, *option2, pCurBuf_s, *save;
if (!GTflag) serror(0);
save = (char *)Null;
hEditWin = GuiScrnEditGetEdit(hBasicWnd);
while (*prog==0x20) prog++;
if (*prog=='(')
{
option1 = prog;
while (*option1!=')'&&*option1!=0x0D&&*option1!=':') option1++;
if (*option1!=')') serror(0);
save = option1;
*option1 = 0x0D;
prog++;
}
value1 = GetAllocBuf();
pCurBuf_s = pCurBuf;
get_exp(value1);
pCurBuf = pCurBuf_s;
value2 = GetAllocBuf();
pCurBuf_s = pCurBuf;
if (*prog!=',') serror(0);
prog++;
token_type = COMMAND;
get_exp(value2);
pCurBuf = pCurBuf_s;
value3 = GetAllocBuf();
pCurBuf_s = pCurBuf;
if (*prog!=',') serror(0);
prog++;
token_type = COMMAND;
get_exp(value3);
if (*value3!=INTEGER_TYPE&&*value3!=REAL_TYPE||Strchr(value3,'-')) serror(0); /***椭圆二径只可以为正数***/
pCurBuf = pCurBuf_s;
value4 = GetAllocBuf();
pCurBuf_s = pCurBuf;
if (*prog!=',') serror(0);
prog++;
token_type = COMMAND;
get_exp(value4);
if (*value4!=INTEGER_TYPE&&*value4!=REAL_TYPE||Strchr(value4,'-')) serror(0); /***椭圆二径只可以为正数***/
pCurBuf = pCurBuf_s;
option1 = GetAllocBuf();
option2 = option1 + 25;
while (*prog==0x20) prog++;
if (*prog!=','&&*prog!=0x0D&&*prog!=':') serror(0);
if (*prog!=',') {
Strcpy(option1,"11");
Strcpy(option2,"11");
} else {
prog++;
token_type = COMMAND;
get_exp(option1);
if (*(option1+2)!=0) serror(0);
while (*prog==0x20) prog++;
if (*prog!=','&&*prog!=0x0D&&*prog!=':') serror(0);
if (*prog!=',') Strcpy(option2,"11");
else {
prog++;
token_type = COMMAND;
get_exp(option2);
if (*(option2+2)!=0) serror(0);
}
}
while (*prog==0x20) prog++;
if (*prog!=0x0D&&*prog!=':') serror(0);
saveBKMode = GraphGetBKMode((MDC*)hEditWin);
switch (*(option2+1)) {
case '2' : /***反显***/
case '0' : /***清除所画椭圆***/
GraphSetBKMode((MDC*)hEditWin,BKMODE_NOT);
break;
case '1' : /***画椭圆***/
break;
case '3' : /***或***/
GraphSetBKMode((MDC*)hEditWin,BKMODE_OR);
break;
case '4' : /***与***/
GraphSetBKMode((MDC*)hEditWin,BKMODE_AND);
break;
case '5' : /***异或***/
GraphSetBKMode((MDC*)hEditWin,BKMODE_XOR);
break;
default :
serror(0);
}
if (*(option1+1)=='0') /***不填充***/
GraphDrawCircle((MDC *)hEditWin,atoi(value1+1)-atoi(value3+1),atoi(value2+1)-atoi(value4+1),atoi(value1+1)+atoi(value3+1),atoi(value2+1)+atoi(value4+1));
else if (*(option1+1)=='1') /***填充***/
GraphFillCircle((MDC *)hEditWin,atoi(value1+1)-atoi(value3+1),atoi(value2+1)-atoi(value4+1),atoi(value1+1)+atoi(value3+1),atoi(value2+1)+atoi(value4+1));
else
serror(0);
GraphSetBKMode((MDC*)hEditWin,saveBKMode);
if (save!=(char *)Null) *save = ')';
}
FAR void exec_line()
{
UInt8 *hEditWin, saveBKMode;
char *value1, *value2, *value3, *value4, *option, pCurBuf_s, *save;
if (!GTflag) serror(0);
save = (char *)Null;
hEditWin = GuiScrnEditGetEdit(hBasicWnd);
while (*prog==32) prog++;
if (*prog=='(') {
option=prog;
while (*option!=')'&&*option!=0x0D&&*option!=':') option++;
if (*option!=')') serror(0);
save = option;
*option = 0x0D;
prog++;
}
value1 = GetAllocBuf();
pCurBuf_s = pCurBuf;
get_exp(value1);
pCurBuf = pCurBuf_s;
value2=GetAllocBuf();
pCurBuf_s = pCurBuf;
if (*prog!=',') serror(0);
prog++;
token_type = COMMAND;
get_exp(value2);
pCurBuf = pCurBuf_s;
value3 = GetAllocBuf();
pCurBuf_s = pCurBuf;
if (*prog!=',') serror(0);
prog++;
token_type = COMMAND;
get_exp(value3);
pCurBuf = pCurBuf_s;
value4 = GetAllocBuf();
pCurBuf_s = pCurBuf;
if (*prog!=',') serror(0);
prog++;
token_type = COMMAND;
get_exp(value4);
pCurBuf = pCurBuf_s;
option = GetAllocBuf();
while (*prog==0x20) prog++;
if (*prog!=','&&*prog!=0x0D&&*prog!=':') serror(0);
if (*prog!=',') Strcpy(option,"11");
else {
prog++;
token_type = COMMAND;
get_exp(option);
if (*(option+2)!=0) serror(0);
}
while (*prog==0x20) prog++;
if (*prog!=0x0D&&*prog!=':') serror(0);
saveBKMode = GraphGetBKMode((MDC*)hEditWin);
switch (*(option+1)) {
case '2' : /***反显***/
case '0' : /***清除所画线***/
GraphSetBKMode((MDC*)hEditWin,BKMODE_NOT);
break;
case '1' : /***画线***/
break;
case '3' : /***或***/
GraphSetBKMode((MDC*)hEditWin,BKMODE_OR);
break;
case '4' : /***与***/
GraphSetBKMode((MDC*)hEditWin,BKMODE_AND);
break;
case '5' : /***异或***/
GraphSetBKMode((MDC*)hEditWin,BKMODE_XOR);
break;
default :
serror(0);
}
GraphDrawLine((MDC *)hEditWin,atoi(value1+1),atoi(value2+1),atoi(value3+1),atoi(value4+1));
GraphSetBKMode((MDC*)hEditWin,saveBKMode);
if (save!=(char *)Null) *save = ')';
}
FAR void exec_box()
{
UInt8 *hEditWin, saveBKMode;
char *value1, *value2, *value3, *value4, *option1, *option2, pCurBuf_s, *save;
if (!GTflag) serror(0);
save = (char *)Null;
hEditWin = GuiScrnEditGetEdit(hBasicWnd);
while (*prog==32) prog++;
if (*prog=='(')
{
option1 = prog;
while (*option1!=')'&&*option1!=0x0D&&*option1!=':') option1++;
if (*option1!=')') serror(0);
save = option1;
*option1 = 0x0D;
prog++;
}
value1 = GetAllocBuf();
pCurBuf_s = pCurBuf;
get_exp(value1);
pCurBuf = pCurBuf_s;
value2 = GetAllocBuf();
pCurBuf_s = pCurBuf;
if (*prog!=',') serror(0);
prog++;
token_type = COMMAND;
get_exp(value2);
pCurBuf = pCurBuf_s;
value3 = GetAllocBuf();
pCurBuf_s = pCurBuf;
if (*prog!=',') serror(0);
prog++;
token_type = COMMAND;
get_exp(value3);
pCurBuf = pCurBuf_s;
value4 = GetAllocBuf();
pCurBuf_s = pCurBuf;
if (*prog!=',') serror(0);
prog++;
token_type = COMMAND;
get_exp(value4);
pCurBuf = pCurBuf_s;
option1 = GetAllocBuf();
option2 = option1 + 25;
while (*prog==0x20) prog++;
if (*prog!=','&&*prog!=0x0D&&*prog!=':') serror(0);
if (*prog!=',') {
Strcpy(option1,"11");
Strcpy(option2,"11");
}
else
{
prog++;
token_type = COMMAND;
get_exp(option1);
while (*prog==0x20) prog++;
if (*prog!=','&&*prog!=0x0D&&*prog!=':') serror(0);
if (*prog!=',') Strcpy(option2,"11");
else
{
prog++;
token_type = COMMAND;
get_exp(option2);
}
}
if (*prog!=0x0D&&*prog!=':') serror(0);
saveBKMode = GraphGetBKMode((MDC*)hEditWin);
switch (*(option2+1))
{
case '2' : /***反显***/
GraphSetBKMode((MDC*)hEditWin,BKMODE_NOT);
break;
case '0' : /***清除所画矩形***/
GraphClearRect((MDC *)hEditWin,atoi(value1+1),atoi(value2+1),atoi(value3+1),atoi(value4+1));
break;
case '1' : /***画矩形***/
break;
case '3' : /***或***/
GraphSetBKMode((MDC*)hEditWin,BKMODE_OR);
break;
case '4' : /***与***/
GraphSetBKMode((MDC*)hEditWin,BKMODE_AND);
break;
case '5' : /***异或***/
GraphSetBKMode((MDC*)hEditWin,BKMODE_XOR);
break;
default :
break;
}
if (*(option2+1)!='0') {
if (*(option1+1)=='0') /***不填充***/
GraphDrawRect((MDC *)hEditWin,atoi(value1+1),atoi(value2+1),atoi(value3+1),atoi(value4+1));
else /***填充***/
GraphFillRect((MDC *)hEditWin,atoi(value1+1),atoi(value2+1),atoi(value3+1),atoi(value4+1));
}
GraphSetBKMode((MDC*)hEditWin,saveBKMode);
if (save!=(char *)Null) *save = ')';
}
FAR void exec_draw()
{
UInt8 *hEditWin, saveBKMode;
char *value1, *value2, *option, pCurBuf_s, *save;
if (!GTflag) serror(0);
save = (char *)Null;
hEditWin = GuiScrnEditGetEdit(hBasicWnd);
while (*prog==32) prog++;
if (*prog=='(')
{
option = prog;
while (*option!=')'&&*option!=0x0D&&*option!=':') option++;
if (*option!=')') serror(0);
save = option;
*option = 0x0D;
prog++;
}
value1 = GetAllocBuf();
pCurBuf_s = pCurBuf;
get_exp(value1);
pCurBuf = pCurBuf_s;
value2 = GetAllocBuf();
pCurBuf_s = pCurBuf;
if (*prog!=',') serror(0);
prog++;
token_type = COMMAND;
get_exp(value2);
pCurBuf = pCurBuf_s;
option = GetAllocBuf();
if (*prog!=',') Strcpy(option,"11");
else
{
prog++;
token_type = COMMAND;
get_exp(option);
}
while (*prog==0x20) prog++;
if (*prog!=0x0D&&*prog!=':') serror(0);
saveBKMode = GraphGetBKMode((MDC*)hEditWin);
switch (*(option+1)) {
case '2' : /***反显***/
case '0' : /***清除所画点***/
GraphSetBKMode((MDC*)hEditWin,BKMODE_NOT);
break;
case '1' : /***画点***/
break;
case '3' : /***或***/
GraphSetBKMode((MDC*)hEditWin,BKMODE_OR);
break;
case '4' : /***与***/
GraphSetBKMode((MDC*)hEditWin,BKMODE_AND);
break;
case '5' : /***异或***/
GraphSetBKMode((MDC*)hEditWin,BKMODE_XOR);
break;
default :
break;
}
GraphDrawDot((MDC *)hEditWin,atoi(value1+1),atoi(value2+1));
GraphSetBKMode((MDC*)hEditWin,saveBKMode);
if (save!=(char *)Null) *save = ')';
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -