MFC畫透明矩形,MFC 畫乙個透明矩形

時間 2021-05-04 15:43:13

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);

素描如何畫的透明不悶,素描時怎麼表現透明玻璃的質感

涵涵曉龍 你用紙擦完之後順著明暗交界線把反光用橡皮或橡皮泥再蹭出來,擦糊了,你這一糊肯定明暗交界線都沒了。沒有交界線你還畫什麼素描。體感空間感都不會有得 記住,明暗交界線是畫面中顏色最重的 建議你認真想想我的話。 小呆呆不再 在用紙擦完後,用橡皮和鉛筆修一修外輪廓,抓住物體的型。寧外擦得時候要注意力...

怎樣畫透明的果凍妝,怎樣畫乙個透明的果凍妝

清潔 抹油後打粉底液 強調一定要打薄 因為透明妝如果粉底液厚的話不僅 會不透氣不舒服 而且整體看起來也會不自然 很死板。畫眉時強調自然 不要把眉毛修的很細很不自然眉毛尾端強調自然過渡。這樣看起來會比較舒服自然。眼影顏色 白色 粉色 橙色。先用橙色打底 整個眼簾都要輕輕的撲上 強調眼角和眼尾的部分。再...