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

📄 editmark.cpp

📁 图形符号及等值线追踪部分源程序
💻 CPP
📖 第 1 页 / 共 2 页
字号:
                             Base->Draw_dzhz16(MapClientDC,wx[2*5-1]+12.0,wy[2*5]-5.0,cc[5],0);
                             Base->Draw_dzhz16(MapMemoryDC,wx[2*5-1]+12.0,wy[2*5]-5.0,cc[5],0);
                           }

                           start_time=GetTickCount();
                           for(;;)
                           { end_time=GetTickCount();
                             if(end_time-start_time>=60) break;
                             if(PeekMessage(&msg,NULL,0,0,PM_REMOVE))
                             { switch(msg.message)
                               { default:
                                     DispatchMessage(&msg);
                                     break;
                               }
                             }
                           }
                           if(num>=2)
                             Show_Mark(MapClientDC,flag,num-1,typee,filll,nn,xx,yy, 
                                       0.0,0.0,1.0,0.0, 17, 1);
                           Base->Setfcolor(MapClientDC,13);   // 画原点
                           Base->w_fillrectangle(MapClientDC,(float)(ix-2),(float)(iy-2),
                                                 (float)(ix+2),(float)(iy+2));
                         }

                         if(code0==4)
                         { itoa(flag,Textcode,10);
                           i=Dialog_Input_Code();
                           if(i==0)
                           { flag=atoi(Textcode);
                             if(flag==1) strcpy(cc[4],"直 立");
                             if(flag==0) strcpy(cc[4],"旋 转");

                             Draw_Key(Base,MapClientDC,wx[2*4-1],wy[2*4-1],wx[2*4],wy[2*4],7,10,8);
                             Base->Setfcolor(MapClientDC,0);
                             Base->w_rectangle(MapClientDC,wx[2*4-1],wy[2*4-1],wx[2*4],wy[2*4]);
                             Draw_Key(Base,MapMemoryDC,wx[2*4-1],wy[2*4-1],wx[2*4],wy[2*4],7,10,8);
                             Base->Setfcolor(MapMemoryDC,0);
                             Base->w_rectangle(MapMemoryDC,wx[2*4-1],wy[2*4-1],wx[2*4],wy[2*4]);
                             Base->Draw_dzhz16(MapClientDC,wx[2*4-1]+12.0,wy[2*4]-5.0,cc[4],0);
                             Base->Draw_dzhz16(MapMemoryDC,wx[2*5-1]+12.0,wy[2*5]-5.0,cc[5],0);
                           }

                           start_time=GetTickCount();
                           for(;;)
                           { end_time=GetTickCount();
                             if(end_time-start_time>=60) break;
                             if(PeekMessage(&msg,NULL,0,0,PM_REMOVE))
                             { switch(msg.message)
                               { default:
                                     DispatchMessage(&msg);
                                     break;
                               }
                             }
                           }
                           if(num>=2)
                             Show_Mark(MapClientDC,flag,num-1,typee,filll,nn,xx,yy, 
                                       0.0,0.0,1.0,0.0, 17, 1);
                           Base->Setfcolor(MapClientDC,13);   // 画原点
                           Base->w_fillrectangle(MapClientDC,(float)(ix-2),(float)(iy-2),
                                                 (float)(ix+2),(float)(iy+2));
                         }



                         if(code0==8)
                         { if(num>=2)
                           { dx=Scroller->XPos;
                             dy=Scroller->YPos;
                             MapClientDC->BitBlt(-dx,-dy,MapWidth,MapHeight,*MapMemoryDC, 0, 0, SRCCOPY);
                             Base->Setfcolor(MapClientDC,1);
                             Base->w_fillrectangle(MapClientDC,wx[19]-2,wy[19]-2,wx[20]+2,wy[20]+2);
                             Base->Setfcolor(MapMemoryDC,1);
                             Base->w_fillrectangle(MapMemoryDC,wx[19]-2,wy[19]-2,wx[20]+2,wy[20]+2);

                             Base->Setfcolor(MapClientDC,8);
                             Base->w_fillrectangle(MapClientDC,wx[19],wy[19],wx[20],wy[20]);
                             Base->Setfcolor(MapClientDC,0);
                             Base->w_rectangle(MapClientDC,wx[19],wy[19],wx[20],wy[20]);
                             Base->Setfcolor(MapMemoryDC,8);
                             Base->w_fillrectangle(MapMemoryDC,wx[19],wy[19],wx[20],wy[20]);
                             Base->Setfcolor(MapMemoryDC,0);
                             Base->w_rectangle(MapMemoryDC,wx[19],wy[19],wx[20],wy[20]);

                             num=num-1;
                             if(num>=2)
                             {           // 在小窗口中显示
                               for(j=0;j<num-1;j++)
                               { for(i=0;i<nn[j];i++)
                                 { xx[j][i]=xx[j][i]-x01;
                                   yy[j][i]=yy[j][i]-y01;
                                 }
                               }
                               Show_Mark(MapClientDC,flag,num-1,typee,filll,nn,xx,yy,
                                         wx[19],wy[19],t,0.0, 17, 1);
                               Show_Mark(MapMemoryDC,flag,num-1,typee,filll,nn,xx,yy,
                                         wx[19],wy[19],t,0.0, 17, 1);
                               for(j=0;j<num-1;j++)
                               { for(i=0;i<nn[j];i++)
                                 { xx[j][i]=xx[j][i]+x01;
                                   yy[j][i]=yy[j][i]+y01;
                                 }
                               }
                               Show_Mark(MapClientDC,flag,num-1,typee,filll,nn,xx,yy, 
                                         0.0,0.0,1.0,0.0, 17, 1);
                             }

                             Base->Setfcolor(MapClientDC,13);   // 画原点
                             Base->w_fillrectangle(MapClientDC,(float)(ix-2),(float)(iy-2),
                                                   (float)(ix+2),(float)(iy+2));
                           }
                         }

                         if(code0==6)
                         { Draw_Key(Base,MapClientDC,wx[2*6-1],wy[2*6-1],wx[2*6],wy[2*6],10,7,8);
                           Base->Setfcolor(MapClientDC,0);
                           Base->w_rectangle(MapClientDC,wx[2*6-1],wy[2*6-1],wx[2*6],wy[2*6]);
                           Draw_Key(Base,MapMemoryDC,wx[2*6-1],wy[2*6-1],wx[2*6],wy[2*6],10,7,8);
                           Base->Setfcolor(MapMemoryDC,0);
                           Base->w_rectangle(MapMemoryDC,wx[2*6-1],wy[2*6-1],wx[2*6],wy[2*6]);
                           Base->Draw_dzhz16(MapClientDC,wx[2*6-1]+12.0,wy[2*6]-5.0,cc[6],0);
                           Base->Draw_dzhz16(MapMemoryDC,wx[2*6-1]+12.0,wy[2*6]-5.0,cc[6],0);

                           for(;;)
                           { if(PeekMessage(&msg,NULL,0,0,PM_REMOVE))
                             { if(msg.hwnd!=hWnd0)
                               { DispatchMessage(&msg);
                                 goto M3;
                               }
                               switch(msg.message)
                               { case WM_RBUTTONDOWN:
                                      goto M4;
                                      break;
                                 case WM_LBUTTONDOWN:
                                      dx=Scroller->XPos;
                                      dy=Scroller->YPos;
                                      MapClientDC->BitBlt(-dx,-dy,MapWidth,MapHeight,*MapMemoryDC, 0, 0, SRCCOPY);

                                      if(num>=2)
                                        Show_Mark(MapClientDC,flag,num-1,typee,filll,nn,xx,yy, 
                                                  0.0,0.0,1.0,0.0, 17, 1);

                                      dx=LOWORD(msg.lParam);dy=AUey-HIWORD(msg.lParam);
                                      if((float)dx>=x01&&(float)dx<=x02 && (float)dy>=y01&&(float)dy<=y02)
                                      { ix=dx;iy=dy;
                                      }
                                      Base->Setfcolor(MapClientDC,13);   // 画原点
                                      Base->w_fillrectangle(MapClientDC,(float)(ix-2),(float)(iy-2),
                                                            (float)(ix+2),(float)(iy+2));
                                      break;
                               }
                             }
M3:                          ;
                           }
M4:                        ;

                           Draw_Key(Base,MapClientDC,wx[2*6-1],wy[2*6-1],wx[2*6],wy[2*6],7,10,8);
                           Base->Setfcolor(MapClientDC,0);
                           Base->w_rectangle(MapClientDC,wx[2*6-1],wy[2*6-1],wx[2*6],wy[2*6]);
                           Draw_Key(Base,MapMemoryDC,wx[2*6-1],wy[2*6-1],wx[2*6],wy[2*6],7,10,8);
                           Base->Setfcolor(MapMemoryDC,0);
                           Base->w_rectangle(MapMemoryDC,wx[2*6-1],wy[2*6-1],wx[2*6],wy[2*6]);
                           Base->Draw_dzhz16(MapClientDC,wx[2*6-1]+12.0,wy[2*6]-5.0,cc[6],0);
                           Base->Draw_dzhz16(MapMemoryDC,wx[2*6-1]+12.0,wy[2*6]-5.0,cc[6],0);

                         }



// 编辑图元
                         if(code0==9)
                         { Draw_Key(Base,MapClientDC,wx[2*9-1],wy[2*9-1],wx[2*9],wy[2*9],10,7,-8);
                           Base->Setfcolor(MapClientDC,0);
                           Base->w_rectangle(MapClientDC,wx[2*9-1],wy[2*9-1],wx[2*9],wy[2*9]);

                           i=Edit_Line(xt,yt,1,&nt);
                           if(i==-1) goto M5;

                           if(nt>=20)
                           { if(type==4) nt=19;
                             else nt=20;
                           }
                           for(i=1;i<=nt;i++)
                           { x[i-1]=xt[i]+Window0_x1-Show0_x1;
                             y[i-1]=yt[i]+Window0_y1-Show0_y1;
                           }
                           n=nt;
                           if(type==3&&n<3) goto M5;
                           if(type==4)
                           { if(n<3) goto M5;
                             if(x[0]!=x[n-1] || y[0]!=y[n-1])
                             { n=n+1;x[n-1]=x[0];y[n-1]=y[0];
                             }
                           }
                           if(type==6&&n<3) goto M5;
                           if(type==7&&n<3) goto M5;
                           switch(type)
                           { case 3: n=3;break;
                             case 5: n=2;break;
                             case 6: n=3;break;
                             case 7: n=3;break;
                           }
                           nn[num-1]=n;
                           for(i=0;i<n;i++)
                           { xx[num-1][i]=x[i];
                             yy[num-1][i]=y[i];
                           }
                           typee[num-1]=type;
                           filll[num-1]=fill;

                           for(j=0;j<num;j++)
                           { for(i=0;i<nn[j];i++)
                             { xx[j][i]=xx[j][i]-x01;
                               yy[j][i]=yy[j][i]-y01;
                             }
                           }
                                 // 在小窗口中显示
                           Show_Mark(MapClientDC,flag,num,typee,filll,nn,xx,yy,
                                     wx[19],wy[19],t,0.0, 17, 1);
                           Show_Mark(MapMemoryDC,flag,num,typee,filll,nn,xx,yy,
                                     wx[19],wy[19],t,0.0, 17, 1);


                           for(j=0;j<num;j++)
                           { for(i=0;i<nn[j];i++)
                             { xx[j][i]=xx[j][i]+x01;
                               yy[j][i]=yy[j][i]+y01;
                             }
                           }
                           Show_Mark(MapClientDC,flag,num,typee,filll,nn,xx,yy,
                                     0.0,0.0,1.0,0.0, 17, 1);
                           Base->Setfcolor(MapClientDC,13);   // 画原点
                           Base->w_fillrectangle(MapClientDC,(float)(ix-2),(float)(iy-2),
                                                 (float)(ix+2),(float)(iy+2));
                           num=num+1;




M5:                        ;
                           Draw_Key(Base,MapClientDC,wx[2*9-1],wy[2*9-1],wx[2*9],wy[2*9],7,10,-8);
                           Base->Setfcolor(MapClientDC,0);
                           Base->w_rectangle(MapClientDC,wx[2*9-1],wy[2*9-1],wx[2*9],wy[2*9]);
                         }

                         goto M10;
                         break;
                    default:
                         DispatchMessage(&msg);
                         break;

                  }
                }
              }

M10:          ;

              break;

         default:
              DispatchMessage(&msg);
              break;
       }
     }

M18: ;

   }

M200:  ;

   num=num-1;
   if(num>=1)
   { fp=fopen(".\\hzlib\\sllib.dat","ab");
     fwrite(&code,sizeof(code),1,fp);
     fwrite(&flag,sizeof(flag),1,fp);
     fwrite(&ix,sizeof(ix),1,fp);
     fwrite(&iy,sizeof(iy),1,fp);
     fwrite(&num,sizeof(num),1,fp);
     fwrite(typee,sizeof(typee),1,fp);
     fwrite(filll,sizeof(filll),1,fp);
     fwrite(nn,sizeof(nn),1,fp);

     for(i=0;i<20;i++)
     { for(j=0;j<20;j++)
       { x[j]=xx[i][j];
         y[j]=yy[i][j];
       }
       fwrite(x,sizeof(x),1,fp);
       fwrite(y,sizeof(y),1,fp);
     }
     fclose(fp);
   }


M300:  ;

   Pensize=pensize;
   delete xx,yy;



      SetCursor(NULL,IDC_WAIT);     // 获取系统光标
      w1=280;w2=70;
      x1=(AUex-w1)/2.0;y1=(AUey-w2)/2.0;x2=x1+w1;y2=y1+w2;
      Draw_Key(Base,MapClientDC,x1+1,y1+1,x2-1,y2-1,7,10,2);
      Base->Setfcolor(MapClientDC,0);
      Base->w_rectangle(MapClientDC,x1,y1,x2,y2);
      Base->Draw_dzhz24(MapClientDC,x1+20,y2-22,"正在处理,请稍等!",1,0);
      if(sf_edit==0) Set_Lib_Code();
      strcpy(BmpName,".\\mid\\bk_gd$$.$11");
      LoadBmp();
      Mark_number=b_mark_number;
      if( Mark_number>=1 ) Show_Mark_Lib(1,Mark_number,1,0,0);  
      SetCursor(NULL,IDC_ARROW);     // 获取系统光标

}




⌨️ 快捷键说明

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