VC 繪製金剛石(MFC)

2021-09-22 21:35:36 字數 983 閱讀 4364

void ctxx1view::ondraw(cdc* pdc)

zuobiao;

zuobiao p[n];

crect rect;//定義矩形物件

getclientrect(&rect);//獲得客戶區矩形的大小

pdc->setmapmode (mm_anisotropic);//自定義座標系

pdc->setwindowext(rect.width(),rect.height());//設定視窗比例

pdc->setviewportext(rect.width(),rect.height());//設定視區比例且y軸向上

pdc->setviewportorg(rect.width()/2,rect.height()/2);//設定客戶區中心為座標原點

rect.offsetrect(-rect.width()/2,-rect.height()/2);//矩形與客戶區重合

cpen newpen,*poldpen;//定義畫筆

newpen.createpen (ps_solid,1,rgb(0,0,255));//建立藍色畫筆

poldpen=pdc->selectobject(&newpen);//將藍色畫筆選人裝置上下文

double alpha,theta;

theta=2*pi/n;//為等分角

alpha=pi/2-theta;//起始角

//極座標求值

for(int i=0;imoveto(round(p[i].x),round(p[i].y));

pdc->lineto(round(p[j].x),round(p[j].y));

} }pdc->selectobject(poldpen);//恢復裝置環境中的元畫筆

newpen.deleteobject ();//刪除已成自由狀態的藍色畫筆

releasedc(pdc);//釋放裝置指標

}

VC介面繪製雙快取

1 閃屏的問題 在gdi的繪圖系統中,每呼叫一次區域繪圖操作,如fillrect bitblt等,圖形顯示系統就會在螢幕中對指定的區域進行一次重新整理操作。如果頻繁的進行區域繪製操作的操作的話,我們就會發現,螢幕會出現閃屏。使用下面的 對閃屏的問題進行測試,在xp系統閃屏尤其嚴重,在win7系統,閃...

vc 繪製半透明矩形

要繪製透明矩形,要用到 blendfunction 這個結構體 和alphablend這個函式 方法如下 cbitmap tempbitmap 用於繪製矩形的臨時位圖 cdc tempdc crect rect 0,0,100,100 矩形大小 blendfunction blend memset ...

VC介面繪製雙快取

1 閃屏的問題 在gdi的繪圖系統中,每呼叫一次區域繪圖操作,如fillrect bitblt等,圖形顯示系統就會在螢幕中對指定的區域進行一次重新整理操作。如果頻繁的進行區域繪製操作的操作的話,我們就會發現,螢幕會出現閃屏。使用下面的 對閃屏的問題進行測試,在xp系統閃屏尤其嚴重,在win7系統,閃...