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...