易码技术论坛

 找回密码
 加入易码
搜索
查看: 111918|回复: 1

Lava的任意位置复制粘贴

[复制链接]
发表于 2005-3-8 21:47:00 | 显示全部楼层
发现可以简化

char Scr[1600]={0};

char Clip[1600]={0};

char X1,Y1,X2,Y2,GX1,GY1,GX2,GY2;



void Copy(char x1,char y1,char x2,char y2)     //x1,y1,x2,y2为欲复制的区域坐标

{

     X1=x1;

Y1=y1;

     X2=x2;

     Y2=y2;

//保护当前屏幕

GetBlock(0,0,160,80,1,Scr);

     if (X1>X2){X1=X1+X2;X2=X1-X2;X1=X1-X2;}

     if (Y1>Y2){Y1=Y1+Y2;Y2=Y1-Y2;Y1=Y1-Y2;}

     if (X1%8==0) GX1=X1; else GX1=X1-X1%8;

     GX2=X2-X2%8+8;

     //清除两边的不要的多余的图像

     if (X1%8!=0) Block(GX1,Y1,X1-1,Y2,0);

     if (X2%8!=7) Block(X2+1,Y1,GX2-1,Y2,0);

     //将要复制的区域保存到Dat

     GetBlock(GX1,Y1,GX2-GX1,Y2-Y1+1,3,Clip);

     //恢复屏幕

     WriteBlock(0,0,160,80,1,Scr);

}



void Paste(char X,char Y)   //X,Y为欲粘贴的位置坐标

{

//清除目标区并且粘贴

Block(X,Y,X+X2-X1,Y+Y2-Y1,0);

     WriteBlock(X-X1%8,Y,GX2-GX1,Y2-Y1+1,3, Clip);

}



 楼主| 发表于 2005-3-8 19:08:05 | 显示全部楼层 |阅读模式

char Scr[1600]={0};


char Dat[1600]={0};


char Clip[1600]={0};


char X1,Y1,X2,Y2;





void Copy(char x1,char y1,char x2,char y2)     //x1,y1,x2,y2为欲复制的区域坐标


{


     //保存当前屏幕图像到Clip(剪贴板)并记录复制区域的坐标


     GetBlock(0,0,160,80,1,Clip);


     X1=x1;


     Y1=y1;


     X2=x2;


     Y2=y2;


}





void Paste(char X,char Y)   //X,Y为欲粘贴的位置坐标


{


     char GX1,GX2;


     //保护当前屏幕用剪贴板内容更新屏幕


     GetBlock(0,0,160,80,1,Scr);


     WriteBlock(0,0,160,80,1,Clip);


     if (X1>X2){X1=X1+X2;X2=X1-X2;X1=X1-X2;}


     if (Y1>Y2){Y1=Y1+Y2;Y2=Y1-Y2;Y1=Y1-Y2;}


     if (X1%8==0) GX1=X1; else GX1=X1-X1%8;


     GX2=X2-X2%8+8;


     //清除两边的不要的多余的图像


     if (X1%8!=0) Block(GX1,Y1,X1-1,Y2,0);


     if (X2%8!=7) Block(X2+1,Y1,GX2-1,Y2,0);


     //将要复制的区域保存到Dat


     GetBlock(GX1,Y1,GX2-GX1,Y2-Y1+1,3,Dat);


     //恢复屏幕清除目标区并且粘贴


     WriteBlock(0,0,160,80,1,Scr);


Block(X,Y,X+X2-X1,Y+Y2-Y1,0);


     WriteBlock(X-X1%8,Y,GX2-GX1,Y2-Y1+1,3,Dat);


}




您需要登录后才可以回帖 登录 | 加入易码

本版积分规则

Archiver|手机版|小黑屋|EMAX Studio

GMT+8, 2025-6-16 00:04 , Processed in 0.010605 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表