| //函數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); //釋放設備描述符表 } ? |