MFC畫透明的矩形框,MFC畫一個透明的矩形框

2021-05-04 15:42:59 字數 4174 閱讀 2230

1樓:

你可以用畫線的方法代替畫矩形,畫四條直線就可以了,起點和終點都知道畫起來很容易。

2樓:匿名使用者

onlbuttondown onlbuttonup只是做標記和釋放吧,標記不做也可以,在move裡面可以獲取滑鼠狀態。

onmousemove裡面,需要用dc的函式setrop2(r2_not);先設定繪畫模式就可以了,這樣後面畫矩形就是透明的。

mfc 畫一個透明矩形

3樓:

向裝置上下文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);

4樓:匿名使用者

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

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

mfc裡面畫矩形 ,怎麼改變矩形邊框顏色?

15樓:匿名使用者

cpen pen(ps_solid,1,rgb(255,0,0));

dc.selectobject(&pen);

VC 透明矩形怎麼畫,MFC畫一個透明的矩形框

1 在view類的onlbuttonup訊息處理函式中加入 cclientdc dc this cbrush pbrush cbrush fromhandle hbrush getstockobject null brush cbrush poldbrush dc.selectobject pbru...

如何在CAD中畫虛線矩形框,怎麼在CAD中畫虛線?

學習cad,我們首先要bai學會畫簡單 du的幾何圖 zhi形,矩形是4條直線元素組合而dao成專的閉合物件,接下來我們來了 屬解下cad矩形的繪製方法 在cad編輯器專業版中,執行 繪製 矩形 命令 單擊繪圖區的矩形按鈕。在命令列輸入rec,選擇rectangle。選擇矩形命令後,拖動滑鼠直接繪製...

MFC中列表框如何顯示陣列的內容

首先在對話方塊中新建一個listbox列表框,id為idc list1給他關聯一個成員變數m ctrlist,然後再新建一個按鈕,雙擊按鈕產生訊息函式如下,在裡面新增 即可 void clistdlg onbutton1 例子 char array 10 全域性變數uint showfront lp...