關於函式過載的一點小小疑問

2021-05-14 13:35:10 字數 1958 閱讀 3408

1樓:匿名使用者

完整回答你的問題:

方法一、用新建cpaintdc物件來繪圖,此方法中的cpaintdc物件會自動析構,不需顯式銷燬。

cpaintdc dc(this); // 這樣生成一個cpaintdc物件用於繪圖最為方便。

cpen pen(ps_solid,5,rgb(0,255,0));//綠色畫筆

返回舊畫筆指標 -->原錯誤位置。selectobject是cdc類的成員函式,當然要用cdc或其派生類物件來前導。

否則會呼叫api函式selectobject( hdc hdc, hgdiobj hgdiobj); 那就要指定當前dc的控制代碼hdc作為第一個引數了。別忘記現在**的位置是過載的cmyview::onlbuttonup()函式內,當前物件是cmyview物件,不是cdc物件。

dc.selectobject(&pen); //裝載綠色畫筆

dc.moveto(m_pt);

dc.lineto(point);

dc.selectobject(poldpen); //載舊畫筆

方法二、用cdc*型指標來繪圖

cdc* pdc=getdc(); // 呼叫當前視窗的getdc()函式獲得繪圖dc。pdc 看起來比較直觀,知道是dc的指標。

cpen pen(ps_solid,5,rgb(0,255,0));//綠色畫筆

cpen *poldpen=pdc->selectobject(&pen); //返回舊畫筆指標 -->原錯誤位置。selectobject是cdc類的成員函式,當然要用cdc或其派生類物件來前導。否則會呼叫api函式selectobject( hdc hdc, hgdiobj hgdiobj); 那就要指定當前dc的控制代碼hdc作為第一個引數了。

pdc->selectobject(&pen); //裝載綠色畫筆

pdc->moveto(m_pt);

pdc->lineto(point);

pdc->selectobject(poldpen); //載舊畫筆

releasedc(pdc); // 用getdc()獲取的dc必須顯式釋放,否則dc資源將很快消耗

getdc()函式的解釋:

getdc()此處其實隱含轉換為this->getdc(),別忘記現在**的位置是過載的cmyview::onlbuttonup()函式內,this指標指向當前物件即為cmyview物件。因此如你所願是想獲得當前的cmyview物件的dc,而不是cwnd::

getdc()。

cwnd::getdc()和this->getdc()的區別是一個是類的成員函式,一個是物件(類的例項化)的成員函式。

類和物件的關係,就像「人」和「小布什」的關係一樣。

類是泛指有相同性質的型別,物件是一個具體的個體。

cwnd::getdc()就好比「人的腿」,this->getdc()好比「小布什的腿」,區別顯而易見吧,嘿嘿。

2樓:匿名使用者

用法不對,::的用法有兩個,一個是訪問基類的方法,如cview::onlbuttonup(nflags, point);方式。

另一個是呼叫類的靜態方法,你的類不是從cdc類繼承的所以不能用::,而且它不是靜態方法。直接呼叫getdc就可以。

改為如下:

cdc *dc=getdc();

cpen pen(ps_solid,5,rgb(0,255,0));//綠色畫筆

返回舊畫筆指標 ------>錯誤位置

dc->selectobject(&pen);//裝載綠色畫筆

dc->moveto(m_pt);

dc->lineto(point);

dc->selectobject(poldpen);//載舊畫筆

cview::onlbuttonup(nflags, point);

關於void的一點疑問

void main void 最常見的就是主函式main,第一個void表示函式沒有返回值 第二個函式沒有輸入引數 void just a print void 此函式返回值型別是 void 表示 沒有 返回值,意味著某些語句不合法如 x just a print 函式的參數列只有一個void,表示...

關於定積分的一點疑問

解答 樓主的這一段敘述中,犯了兩個概念錯誤,不得不指出 第一個概念錯誤 面積為正當然不錯,但是必須是上方的函式f x 減下方的函式g x 才行,積分的結果才是正。本題x在x 上方,只有 0,1 這一段。所以a,b不可以任意定。第二個概念錯誤 本題只有在 0,1 內的積分才是正值。在此區間外的積分都是...

關於圖中模型的一點疑問

1 從拼裝模bai 型玩家來說這個航du母估計 是在市售的1 350拼裝zhi模型的基礎上加上dao細節而成的,東專西確實是精品 屬。製作這樣的大型商做一般是模型工作室製作的 因為此類模型精細度高 所以不適合工廠批量生產 所以就見得少了。2 模型公司的圖紙可以從別國的模型公司相互合作以獲得圖紙 或者...