//函数1:利用画矩形函数实现拖动实框 void DrawMoveRect(int xx1,int yy1,int xx2,int yy2,int xy) { HDC hDC; int oldrop2,m,k; hDC = GetDC(NULL); //取得全屏幕设备描述句柄 oldrop2= GetROP2(hDC); //取得原来屏幕画图方式 SetROP2(hDC,R2_XORPEN); //设置异或屏幕画图方式 SelectObject(hDC,GetStockObject(NULL_BRUSH));//屏蔽画刷 SelectObject(hDC2,GetStockObject(WHITE_PEN));//选择画笔 for (k=0;k xx1-=1; xx2+=1; yy1-=1; yy2+=1; Rectangle(hDC2,xx1,yy1,xx2,yy2); } SetROP2(hDC2,oldrop2); //恢复原来作图方式 ReleaseDC(NULL,hDC2); //释放设备描述符表 } //函数2:利用画线函数实现拖动实框或虚框 void DrawMoveRect(int xx1,int yy1,int xx2,int yy2,int xy) { HDC hDC2; int oldrop2,m,k; hDC = GetDC(NULL); //取得全屏幕设备描述句柄 oldrop2= GetROP2(hDC); //取得原来屏幕画图方式 SetROP2(hDC,R2_XORPEN); //设置异或屏幕画图方式 SelectObject(hDC,GetStockObject(NULL_BRUSH));//屏蔽画刷 SelectObject(hDC2,GetStockObject(WHITE_PEN));//选择画笔 for (k=0;k xx1-=1; xx2+=1; yy1-=1; yy2+=1; MoveTo(hDC2,xx1,yy1); LineTo(hDC2,xx2,yy1); MoveTo(hDC2,xx1,yy1); LineTo(hDC2,xx2,yy1); } SetROP2(hDC2,oldrop2); //恢复原来作图方式 ReleaseDC(NULL,hDC2); //释放设备描述符表 } //函数3:利用画点函数实现不同图案的拖动虚框 void DrawMoveRect(int xx1,int yy1,int xx2,int yy2,int xy) { HDC hDC2; int oldrop2,I,j,x1,x2,y1,y2; hDC = GetDC(NULL); //取得全屏幕设备描述句柄 oldrop2= GetROP2(hDC); //取得原来屏幕画图方式 SetROP2(hDC,R2_XORPEN); //设置异或屏幕画图方式 SelectObject(hDC,GetStockObject(NULL_BRUSH));//屏蔽画刷 SelectObject(hDC2,GetStockObject(WHITE_PEN));//选择画笔 for (j=0;j x1=xx1-j; //带注释部分为另一图案 x2=xx2+j; y1=yy1-j; y2=yy2+j; for (I=x1;I SetPixel(hdc,I,y1,RGB(255,0,0)); //if (I for (I=y1;I SetPixel(hdc,x2,I,RGB(255,0,0)); //if (I for (I=x2;I>x1;I-=2) SetPixel(hdc,I,y2,RGB(255,0,0)); //if (I>x1+2) SetPixel(hdc,I-1,y2-1,RGB(255,0,0));} for (I=y2;I>y1;I-=2) SetPixel(hdc,x1,I,RGB(255,0,0)); //if (I>y1+2) SetPixel(hdc,x1+1,I-1,RGB(255,0,0));} } SetROP2(hDC2,oldrop2); //恢复原来作图方式 ReleaseDC(NULL,hDC2); //释放设备描述符表 } |