⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bf_dell.cpp

📁 吐血奉献:一套完整的DOS版软件工程
💻 CPP
📖 第 1 页 / 共 3 页
字号:
  x=orig_x; y=orig_y;
  hilight(x,y);
  chip[0]='\0';
  left[0]='\0';
  right[0]='\0';
  trim_right(string);
  trim_left(string);
  strcpy(right,string);
  i=strlen(right);
  if(start>i) chip_left(left,right,i);
  else chip_left(left,right,start);
  outtextxy(x,y,left);
  start:moveto(x,y);
  for(;;)
   {
   ext2=1;
   ch=0;
   letter=0;
   len_left=strlen(left);
   len_right=strlen(right);
   moveto(x,y);
   if(mouse_test_sign==1){
     BOY_MOUSE_VIEW();
     while(!kbhit()){
	 BOY_MOUSE_GETALL(&p1,&p2,&p3);
	 for(i=0;i<nx;i++){
	   if(p3!=1) break;
	   if((p2>=y)&&(p2<=y+8)) break;
	   if((p1-orig_x>=0)&&(p1-orig_x<=inlength*8)&&(p2+16*bx>y+16*i)&&(p2+16*bx<y+16*(i+1))){
	     while(BOY_MOUSE_BUTTON());
	     BOY_MOUSE_HIDE();
	     hilight(x,y);//dimlight(x,y);
	     if(len_right>0) trim_right(right);
	     if(len_left>0) trim_left(left);
	     len_left=strlen(left);
	     len_right=strlen(right);
	     ext2=(-1)*i;
	     break;
	     }
	   }
	 if(ext2<=0) break;
	 if((p3==1)&&(p1-orig_x>=0)&&(p1-orig_x<=inlength*8)&&(p2>=y)&&(p2<=y+8)){
	   judge=floor((p1-x)/8);
	   while(BOY_MOUSE_BUTTON());
	   if(judge<=0){
	     chip_right(chip,left,1-judge);
	     strcat(chip,right);
	     strcpy(right,chip);
	     }
	   else{
	     chip_left(chip,right,judge);
	     strcat(left,chip);
	     }
	   BOY_MOUSE_HIDE();
	   hilight(x,y);//dim
	   len_left+=judge;
	   len_right-=judge;
	   x=orig_x+textwidth("8")*len_left;
	   moveto(x,y);
	   break;
	   }
	 if(p3==2){
	   BOY_MOUSE_HIDE();
	   return_code=ESCAPE;
	   return(return_code);
	   }
	 if(p3==1){
	   if(BOY_MOUSE_INBOX(M_right-17,M_top+6,M_right-6,M_top+19)==1){
	     while(BOY_MOUSE_BUTTON()==1);
	     BOY_MOUSE_HIDE();
	     return_code=ESCAPE;
	     return(return_code);
	     }
	   if(BOY_MOUSE_INBOX(M_left+6,M_top+6,M_left+17,M_top+19)==1){
	     while(BOY_MOUSE_BUTTON()==1);
	     BOY_MOUSE_HIDE();
	     ext2=PGDN;
	     return_code=PGDN;
	     break;
	     }
	   if(BOY_MOUSE_INBOX(30,5,62,21)==1){
	     while(BOY_MOUSE_BUTTON());
	     BOY_MOUSE_HIDE();
	     setfillstyle(1,9);
	     bar(30,5,62,21);
	     if(!insert) disp_hz_str(30,5,"插入",15);
	     else disp_hz_str(30,5,"覆盖",15);
	     insert=!insert;
	     BOY_MOUSE_VIEW();
	     }
	   }
       }
    if(kbhit()){
      BOY_MOUSE_HIDE();
      get_key(&ch,&ext2);
      }
     }
   else get_key(&ch,&ext2);
   if(ch>=32) letter=TRUE;
   if(ext2==INSERT){
      setfillstyle(1,9);
      bar(30,5,62,21);
      if(!insert) disp_hz_str(30,5,"插入",15);
      else disp_hz_str(30,5,"覆盖",15);
      insert=!insert;
      }
   if(len_right>0) trim_right(right);
   if(len_left>0) trim_left(left);
   len_left=strlen(left);
   len_right=strlen(right);
   if(!letter)
     {
     if(ext2==HOME&&len_left>0)
       {
       strcat(left,right);
       strcpy(right,left);
       len_right=len_left+len_right;
       len_left=0;
       left[0]='\0';
       hilight(x,y);//dim
       x=orig_x;
       }
     if(ext2==END)
       {
       strcat(left,right);
       len_left=len_left+len_right;
       len_right=0;
       right[0]='\0';
       hilight(x,y);//dim
       x=orig_x+textwidth("8")*len_left;
       }
     if(ext2==LEFT&&len_left>0)
       {
       chip_right(chip,left,1);
       strcat(chip,right);
       strcpy(right,chip);
       hilight(x,y);//dim
       x=x-textwidth("8");
       len_left--;
       len_right++;
       }
     if(ext2==RIGHT&&len_right>0)
       {
       chip_left(chip,right,1);
       strcat(left,chip);
       hilight(x,y);//dim
       x=x+textwidth("8");
       len_right--;
       len_left++;
       }
     if(ext2==DELETE&&len_right>0)
       {
       chip_left(chip,right,1);
       len_right--;
       }
     }
   if(ch==BACKSPACE&&len_left>0)
     {
     chip_right(chip,left,1);
     hilight(x,y);//dim
     x=x-textwidth("8");
     len_left--;
     }
   if(letter)
     {
     hilight(x,y);//dim
     if(insert&&(len_left+len_right>=inlength))
       {
       putchar(BELL);  letter=0;
       }
     else
       {
       if(insert)
	 {
	 x=x+textwidth("8");
	 left[len_left++]=ch;
	 left[len_left]='\0';
	 }
       if(!insert)
	 {
	 if(len_left==inlength)
	   {
	   putchar(BELL);
	   letter=0;
	   }
	 else
	   {
	   chip_left(chip,right,1);
	   left[len_left++]=ch;
	   left[len_left]='\0';
	   len_right--;
	   x=x+textwidth("8");
	   }
	 }
       }
     }
   moveto(x,y);
   if(x<orig_x) x=orig_x;
   if(x>orig_x+textwidth("8")*inlength)  x=orig_x;
   if(len_left<0) len_left=0;
   if(len_right<0) len_right=0;
   size=imagesize(orig_x,orig_y,orig_x+textwidth("8")*(inlength+1),
		 orig_y+textheight("8")+2);
   bk_erase=(char *)(malloc(size));
   if(bk_erase==NULL)  return(0);
   getimage(orig_x,orig_y,orig_x+textwidth("8")*(inlength+1),
	  orig_y+textheight("8")+2,bk_erase);
   putimage(orig_x,orig_y,bk_erase,XOR_PUT);
   free(bk_erase);
   bk_erase=NULL;
   moveto(orig_x,orig_y);
   outtext(left);
   wherexy(&x,&y);
   hilight(x,y);
   outtext(right);
   if(ch==RETURN||ext2==UP||ext2==DOWN||ext2<=0)
     {
     hilight(x,y);//dim
     break;
     }
   if(ext2==PGUP||ext2==PGDN) break;
   if(ch==ESCAPE) break;
   }
   switch(ext2)
     {
     case UP: return_code=UP; break;
     case DOWN: return_code=DOWN; break;
     case PGUP: return_code=PGUP; break;
     case PGDN: return_code=PGDN; break;
     }
   if(ch==RETURN) return_code=RETURN;
   if(ch==ESCAPE) return_code=ESCAPE;
   if(ext2<=0) return_code=ext2;
   strcat(left,right);
   strcpy(string,left);
   if(ret_code==0)
     {
     putchar(BELL);
     goto start;
     }
   return(return_code);
 }
void WriteMode(int mode)
  {
  outportb(0x3CE,5);
  outportb(0x3CF,mode);
  }
void closescr()
  {
  unsigned char byt;
  outportb(0x3c4,1);
  byt=inportb(0x3c5);
  byt|=0x20;
  outportb(0x3c5,byt);
  return;
  }
void openscr()
  {
  unsigned char byt;
  outportb(0x3c4,1);
  byt=inportb(0x3c5);
  byt&=0xdf;
  outportb(0x3c5,byt);
  return;
  }
void board(int left,int top,int right,int bottom,int leavel,int color)
    {
    win_board(left*8,top*18,right*8,bottom*18,leavel,6,color);
    }
void cssz_ch(int cs[13])
 {
 int exxt,kk;
 struct in_struc in_scrn[14]={
   Scrn_x,Scrn_y,"富集电位mv:",NULL,5,-1600,200,
   Scrn_x,Scrn_y+16,"富集时间s  :",NULL,5,0,9999,
   Scrn_x,Scrn_y+32,"起始电位mv:",NULL,5,-1600,200,
   Scrn_x,Scrn_y+48,"终止电位mv:",NULL,5,-1600,200,
   Scrn_x,Scrn_y+64,"脉冲增量mv:",NULL,5,10,100,
   Scrn_x,Scrn_y+80,"脉冲宽度ms:",NULL,5,10,100,
   Scrn_x,Scrn_y+96,"间隔时间s  :",NULL,5,1,32,
   Scrn_x,Scrn_y+112,"斜率增量mv:",NULL,5,1,16,
   Scrn_x,Scrn_y+128,"清洗电压mv:",NULL,5,-1600,200,
   Scrn_x,Scrn_y+144,"清洗时间s  :",NULL,5,0,9999,
   Scrn_x,Scrn_y+160,"静止时间s  :",NULL,5,0,9999,
   Scrn_x,Scrn_y+176,"扫描档位    :",NULL,5,1,12,
   Scrn_x,Scrn_y+192,"档位倍率    :",NULL,5,1,5,
   };
 for(kk=0;kk<13;kk++){
   in_scrn[kk].ptr=(char *)malloc(sizeof("      "));
   itoa(cs[kk],in_scrn[kk].ptr,10);
   }
 saveimage("text.img",10,68,201,324);
 win_board(10,68,200,322,30,6,0);
 disp_hz_str(68,73,"参数设置",15);
 exxt=miti_fld1(in_scrn,13,200,10,68);
 loadimage("text.img",10,68,201,324);
 for(kk=0;kk<13;kk++){
    if(exxt!=27) cs[kk]=atoi(in_scrn[kk].ptr);
    if(in_scrn[kk].ptr!=NULL) free(in_scrn[kk].ptr);
    }
 if(exxt==27) bell(400,0);
 else bell(400,1);
 }
int auto_sz(char *in_str1,char *in_str2,int s_flag)
  {
  int exxt,i;
  char *sign_str[3]={"差示脉冲溶出","差示脉冲伏安","线性扫描伏安"};
  struct in_struc in_scrn4[3]={
   20,112,"间隔时间s:",NULL,2,15,15,
   20,132,"测试次数  :",NULL,2,15,15,
   };
  in_scrn4[0].ptr=(char *)malloc(sizeof("0"));
  in_scrn4[1].ptr=(char *)malloc(sizeof("0 "));
  strcpy(in_scrn4[0].ptr,in_str1);
  strcpy(in_scrn4[1].ptr,in_str2);
  saveimage("filename.img",8,80,182,160);
  win_board(8,80,180,158,20,6,0);
  disp_hz_str(44,85,sign_str[s_flag],15);
  exxt=miti_fld(in_scrn4,2,180,8,80);
  loadimage("filename.img",8,80,182,160);
  if(exxt!=27){
    strcpy(in_str1,in_scrn4[0].ptr);
    strcpy(in_str2,in_scrn4[1].ptr);
    }
  free(in_scrn4[0].ptr);
  free(in_scrn4[1].ptr);
  return exxt;
  }
int get_str(char *in_str[1],int flag,int type)
  {
  int exxt;
  char *type_str[4]={"保存曲线文件","打开曲线文件","保存数据文件","打开数据文件"};
  struct in_struc in_scrn[2]={
   12,100,"请输入文件名:",NULL,16,15,15,
   };
  in_scrn[0].ptr=(char *)malloc(sizeof("               "));
  if(flag==1)  in_str[0]="*.dat          ";
  strcpy(in_scrn[0].ptr,in_str[0]);
  saveimage("filename.img",2,60,278,122);
  win_board(2,60,276,120,20,6,0);
  disp_hz_str(84,65,type_str[type],15);
  exxt=miti_fld(in_scrn,1,276,2,60);
  loadimage("filename.img",2,60,278,122);
  if(exxt!=27) in_str[0]=strdup(in_scrn[0].ptr);
  free(in_scrn[0].ptr);
  return exxt;
  }
void spara_cun(void)
  {
  char *filename[1];
  char *pf;
  FILE *fp;
  int number,handle;
  int press_key=0;
  int i=0;
  int s_flag=0;
  for(i=0;i<l_number-1;i++){
    if(l_data[i]!=l_data[i+1]){
       s_flag=1;
       break;
       }
    else s_flag=0;
    }
  if(s_flag==0){
    button("没有校准数据!",0,0,1,0);
    return;
    }
  if(get_str(filename,1,2)==27) return;
  _fmode=O_BINARY;
  pf=searchpath(filename[0]);
  if(pf!=NULL){
       press_key=file_warn(2);
       if((press_key==5497)||(press_key==5465)){
	   fp=fopen(filename[0],"wb");
	   fprintf(fp,"%d\n",1);
	   fprintf(fp,"%d\n",l_number);
	   for(i=0;i<2*l_number;i++)  fprintf(fp,"%f\n",l_data[i]);
	   bell(400,1);
	   fclose(fp);
	   }
    }
    else{
       handle=creat(filename[0],S_IWRITE|S_IREAD);
       fp=fdopen(handle,"wb");
       if(fp==NULL){
	 file_warn(3);
	 return;
	 }
       fprintf(fp,"%d\n",1);
       fprintf(fp,"%d\n",l_number);
       for(i=0;i<2*l_number;i++) fprintf(fp,"%f\n",l_data[i]);
       fclose(fp);
    }
  bell(400,1);
  return;
  }
void spara_diao(void)
  {
  char *filename[1];
  FILE *fp;
  int exxt,number;
  int i=0;
  exxt=get_str(filename,1,3);
  if(exxt==ESCAPE) return;
  fp=fopen(filename[0],"r");
  if(fp==NULL){
    file_warn(0);
    return;
    }
  fscanf(fp,"%d\n",&number);
  fscanf(fp,"%d\n",&l_number);
  if(number!=1){
      file_warn(1);
      return;
      }
  else{
      for(i=0;i<2*l_number;i++)	fscanf(fp,"%f\n",&l_data[i]);
      }
  fclose(fp);
  bell(400,1);
  return;
  }
void point_line()
  {
  int x0,y0;
  int i;
  char *buf[10]={"1","2","3","4","5","6","7","8","9","10"};
  x0=270;y0=420;
  setcolor(15);
  line(200,421,600,421);
  line(274,120,274,421);
  setcolor(0);
  line(200,420,600,420);
  line(273,120,273,421);
  for(i=-2;i<=10;i++){
   line(x0+30*i+3,421,x0+30*i+3,425);
   itoa_test(x0+30*i,427,i,0,8);
  };
  for(i=1;i<=10;i++){
   outtextxy(x0-2,y0-30*i,"-");
   outtextxy(x0-2-8*strlen(buf[i-1]),y0-30*i,buf[i-1]);
  };
  return;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -