1樓:
向裝置上下文dc選入乙個空畫刷br和乙個紅畫筆pen即可簡單例項如下:
//cbrush br;
//cpen pen;
pen.createpen(ps_solid,1,rgb(255,0,0));
br.createstockobject(null_brush);
dc.selectobject(&pen);
dc.selectobject(&br);
//dc.rectangle(1,1,100,100);
2樓:匿名使用者
cdc *pdc;
pdc = getdc();
cbrush cbr;
cbr.createstockobject(null_brush); //建立乙個空畫刷
cbrush *poldbr = pdc->selectobject(&cbr);
cpen cpen;
cpen.createpen(ps_solid, 1, rgb(255, 0, 0)); //建立乙個紅色的畫筆
cpen *poldpen = pdc->selectobject(&cpen);
pdc->rectangle(10, 10, 100, 100);
pdc->selectobject(poldpen);
cbr.deleteobject();
pdc->selectobject(poldbr);
cbr.deleteobject();
mfc畫乙個透明的矩形框
3樓:
你可以用畫線的方法代替畫矩形,畫四條直線就可以了,起點和終點都知道畫起來很容易。
4樓:匿名使用者
onlbuttondown onlbuttonup只是做標記和釋放吧,標記不做也可以,在move裡面可以獲取滑鼠狀態。
onmousemove裡面,需要用dc的函式setrop2(r2_not);先設定繪畫模式就可以了,這樣後面畫矩形就是透明的。
vc++透明矩形怎麼畫?
5樓:匿名使用者
1、在view類的onlbuttonup訊息處理函式中加入:
cclientdc dc(this);
cbrush *pbrush=cbrush::fromhandle((hbrush)getstockobject(null_brush)) ;
cbrush *poldbrush=dc.selectobject(pbrush);//選入裝置描述表
dc.rectangle(crect(m_ptorigin,point));//繪製矩形
dc.selectobject(poldbrush);
2、只需要響應兩個訊息:wm_lbuttondown,和wm_lbuttonup即可.下面是實現的**,其中,m_origpoint是我在cmfcview類中新增的cpoint型別的成員變數.
//wm_lbuttondown訊息響應函式
void cmfcview::onlbuttondown(uint nflags,cpoint point)
//wm_lbuttonup訊息響應函式
void cmfcview::onlbuttonup(uint nflags,cpoint point)
6樓:匿名使用者
對不起,先想錯了。
應該是對畫刷的設定:
pdc->selectstockobject (null_brush);
這樣,矩形的填充就是透明的了!
然後再畫。
7樓:英語一級
首先你要定義乙個筆的物件這裡以畫刷為例:
cbrush *pbrush;
pbrush=cbrush::fromhandle((hbrush)getstockobject(null_brush))
注意要進行強制型別轉換,最後是乙個空的畫刷去填充矩形區域,你用預設的畫刷,就會用白色去填充,這樣就會覆蓋之前的圖形
8樓:
定義空畫刷:selectstockobject(null_brush);
c++ mfc中繪製乙個紅色的矩形,求解答
9樓:匿名使用者
說明:此段**是在mfc的view類中的, onpaint是訊息函式,每次重新整理視窗都會呼叫這個函式,在onpaint中呼叫ondraw函式來進行要求畫的東西。ondraw中前半段畫的是填充紅色的矩形,後半段中畫的是線框是紅色矩形,程式已除錯通,可以直接使用。
void cmytestview::ondraw(cdc* pdc)
void cmytestview::onpaint()
10樓:你說過的牽手
大哥、c++是c++、是一門語言。
mfc是微軟基礎類庫、
可不可以不混淆、
如果一定要繪製乙個紅色矩形的話、就要使用mfc了。
11樓:匿名使用者
選乙個紅色的筆,然後畫,然後再把筆選回來。
求助,c++在mfc中畫圓,要求填充的是透明的背景 20
12樓:劉文正粉絲
cclient dc(this);
cbrush *poldbrush = dc.selectobject(cbrush::fromhandle((hbrush)getstockobject(null_brushl)));
dc.clientdc.ellipse(10,10,100,100);
dc.selectobject(poldbrush);
其中getstockobject它是返回乙個空的畫刷, 但是這個畫刷的型別是hgdiobject, 它和hbrush不一樣, 但是hbrush和hgdiobject的關係就像基類和派生類, 但是還不是, 所以不強制型別轉換的話就會報錯. 因此需要加乙個強制型別轉換.
轉換後的畫刷控制代碼傳給cbrush類的乙個靜態成員函式fromhandle, 它會把控制代碼變為乙個cbrush類的物件, 並返回其指標.
這樣就得到了乙個空畫刷的物件, 然後用cclientdc的成員函式selectobject把空畫刷物件選到裝置描述表中, 然後就可以畫圓了.
最後還要記得把原始畫刷替換回去, 不然會引發一些影象的錯誤.
13樓:愛上夜色深沉
crect rect;
getwindowrect(&rect);
int w=rect.width()/2;
int h=rect.height()/2;
cpen *ppen=new cpen;
cpen *poldpn;
ppen->createpen(ps_solid,5,rgb(0,0,0));
poldpn=pdc->selectobject(ppen);
cbrush *pbrush=cbrush::fromhandle((hbrush)getstockobject(null_brush));//獲取透明畫刷
cbrush *poldbrush=dc.selectobject(pbrush);//選入裝置
pdc->ellipse(w,w,h,h);//你這裡確定能畫出來?我記得貌似是外接矩形的左上角和右下角的座標
if(poldpn)pdc->selectobject(poldpn);
ppen->deleteobject();
pdc->selectobject(poldbrush);
14樓:龔煒林
crgn rgn;
rgn.createellipticrgn (xleft, ytop, xright, ybottom) ;//引數自己看著改
cbrush brush;
brush.createsolidbrush (rgb(0, 0, 0)) ;
pdc->fillrgn (rgn, &brush) ;
如何用vc畫乙個指定填充色的矩形?
15樓:匿名使用者
建立刷子 createbrushindirect獲得dc
選定畫刷 selectobject
畫矩形 rectangle
16樓:
可用如下**:
sdk版本的:
hdc hdc=getdc(hwnd);
hbrush hbrush=createsolidbrush(rgb(122,122,122));
rect rect;
rect.bottom=0;
rect.left=0;
rect.right=100;
rect.top=100;
fillrect(hdc,&rect,hbrush);
mfc版本的:
cclientdc dc(this);
hbrush hbrush=createsolidbrush(rgb(122,122,122));
cbrush brush(rgb(122,122,122));
crect rect(0,0,100,100);
dc.fillrect(&rect,&brush);
素描如何畫的透明不悶,素描時怎麼表現透明玻璃的質感
涵涵曉龍 你用紙擦完之後順著明暗交界線把反光用橡皮或橡皮泥再蹭出來,擦糊了,你這一糊肯定明暗交界線都沒了。沒有交界線你還畫什麼素描。體感空間感都不會有得 記住,明暗交界線是畫面中顏色最重的 建議你認真想想我的話。 小呆呆不再 在用紙擦完後,用橡皮和鉛筆修一修外輪廓,抓住物體的型。寧外擦得時候要注意力...
怎樣畫透明的果凍妝,怎樣畫乙個透明的果凍妝
清潔 抹油後打粉底液 強調一定要打薄 因為透明妝如果粉底液厚的話不僅 會不透氣不舒服 而且整體看起來也會不自然 很死板。畫眉時強調自然 不要把眉毛修的很細很不自然眉毛尾端強調自然過渡。這樣看起來會比較舒服自然。眼影顏色 白色 粉色 橙色。先用橙色打底 整個眼簾都要輕輕的撲上 強調眼角和眼尾的部分。再...