中文字幕 日本 在线 高清,久久精品国产99精品国,超碰人人香蕉,一区二区三区无码高清视频

VC|MFC的CDC類及如何使用畫(huà)筆繪制各種圖形(vc應(yīng)用mfc畫(huà)圖的詳細(xì)步驟)

CDC對(duì)象提供處理顯示器或打印機(jī)等設(shè)備上下文的成員函數(shù),以及處理與窗口客戶區(qū)對(duì)應(yīng)的顯示上下文的成員。另外還為繪制文本、處理字體,使用打印機(jī)跳轉(zhuǎn),滾動(dòng)和播放元文件提供成員函數(shù)。

它還為獲取和設(shè)置繪圖屬性、映射,處理視點(diǎn)、窗口擴(kuò)展、轉(zhuǎn)換坐標(biāo),處理區(qū)域、剪貼、繪制直線及繪制簡(jiǎn)單橢圓和多邊形等形狀提供了成員函數(shù)。

可以通過(guò)CDC對(duì)象的成員函數(shù)進(jìn)行所有的繪圖。

其對(duì)象層次結(jié)構(gòu)如下:

VC|MFC的CDC類及如何使用畫(huà)筆繪制各種圖形(vc應(yīng)用mfc畫(huà)圖的詳細(xì)步驟)

類名 說(shuō)明
CPaintDC 窗口用戶區(qū)的設(shè)備描述環(huán)境,在OnDraw()函數(shù)中來(lái)處理WM_PAINT消息
CClientDC 窗口客戶區(qū)的設(shè)備描述環(huán)境,但應(yīng)用在WM_PAINT消息之外的消息處理函數(shù)中
CWindowDC 在整個(gè)窗口內(nèi)(不只是用戶區(qū))繪圖的設(shè)備描述環(huán)境
CMetaFileDC 圖元文件的設(shè)備描述環(huán)境,在創(chuàng)建可以回放的圖像時(shí)使用

專門用于在應(yīng)用程序窗口客戶區(qū)繪圖的CPaintDC,是所有CDC子類中最常用的一個(gè)類。為了防止程序設(shè)計(jì)人員誤把繪圖代碼寫(xiě)到其他位置,MFC規(guī)定,CPaintDC對(duì)象只在CView類的OnDraw( )函數(shù)中有效。并且為了方便和引起程序員注意,MFC AppWizard在自動(dòng)為用戶生成的CVeiw派生類代碼中就生成了如下框架代碼:

OnDraw(CDC *Pdc)

{……..}

其中,函數(shù)的參數(shù)pDC就是指向CPaintDC對(duì)象的指針。

系統(tǒng)每次創(chuàng)建應(yīng)用程序窗口及窗口需要刷新時(shí)就會(huì)產(chǎn)生WM_PAINT消息,系統(tǒng)接收到這個(gè)消息就會(huì)自動(dòng)調(diào)用OnDraw( )函數(shù)。應(yīng)用程序也可以調(diào)用相關(guān)函數(shù)來(lái)激活OnDraw( ),所以程序中所有對(duì)窗口客戶區(qū)進(jìn)行繪圖的代碼都應(yīng)該寫(xiě)在這個(gè)函數(shù)中。

CDC類有很多成員函數(shù),包括繪制點(diǎn)、直線、矩形、橢圓、多邊形、文本以及位圖等的成員函數(shù)。

以下是一個(gè)小實(shí)例:

// Ch9Demo3View.cpp

void CCh9Demo3View::OnDraw(CDC* pDC)

{

CCh9Demo3Doc* pDoc = GetDocument();

ASSERT_VALID(pDoc);

// TODO: add draw code for native data here

CPen pen[5];

//創(chuàng)建實(shí)線畫(huà)筆

pen[0].CreatePen(PS_SOLID, 5, RGB(255, 0, 0));

//創(chuàng)建虛線畫(huà)筆

pen[1].CreatePen(PS_DASH, 1, RGB(0, 255, 0));

//創(chuàng)建點(diǎn)線畫(huà)筆

pen[2].CreatePen(PS_DOT, 1, RGB(0, 0, 255));

//創(chuàng)建點(diǎn)劃線畫(huà)筆

pen[3].CreatePen(PS_DASHDOT, 1, RGB(0, 255, 255));

// 創(chuàng)建雙點(diǎn)劃線畫(huà)筆

pen[4].CreatePen(PS_DASHDOTDOT, 1, RGB(255, 0, 255));

// 保存指向設(shè)備上下文原有畫(huà)筆的指針

CPen *pOldPen;

//以實(shí)線畫(huà)筆繪制矩形

pOldPen=pDC->SelectObject(&pen[0]);

pDC->Rectangle(10, 10, 110, 110);

pDC->TextOut(10, 115, \”Rectangle繪制矩形\”);

//使用虛線畫(huà)筆和函數(shù)Polyline輸出多段折線

pDC->SelectObject(&pen[1]);//載入畫(huà)筆

pDC->Rectangle(180, 10, 330, 110);//繪制矩形

CPoint pts[]={CPoint(190, 20), CPoint(200, 60), CPoint(270, 40), CPoint(210, 80),

CPoint(250, 100), CPoint(300, 30), CPoint(310, 80)};

pDC->Polyline(pts, 7);//繪制多端折線

pDC->TextOut(180, 115, \”Polyline繪制多段折線\”);

// 使用Pie和Arc輸出餅圖和弧形

pDC->SelectObject(&pen[2]);//載入點(diǎn)線畫(huà)筆

pDC->Ellipse(10, 140, 160, 240);

pDC->SelectObject(&pen[3]);//載入點(diǎn)劃線畫(huà)筆

pDC->Pie(20, 150, 150, 230, 160, 160, 10, 160);

pDC->SelectObject(&pen[4]);//載入雙點(diǎn)劃線畫(huà)筆

pDC->Arc(20, 150, 150, 230, 10, 220, 160, 220);

pDC->TextOut(10, 245, \”不同畫(huà)筆繪制橢圓、弧形和餅圖\”);

//恢復(fù)設(shè)備上下文的原有畫(huà)筆

pDC->SelectObject(pOldPen);

//刪除所創(chuàng)建的畫(huà)筆資源

for (int i=0; i<5; i )

pen[i].DeleteObject();

}

VC|MFC的CDC類及如何使用畫(huà)筆繪制各種圖形(vc應(yīng)用mfc畫(huà)圖的詳細(xì)步驟)

繪制弧形需要4個(gè)坐標(biāo)點(diǎn),函數(shù)原型如下:

Arc(int x1,int x2, int x3, int x4, int x5, int x6, int x7, int x8)

4個(gè)坐標(biāo)點(diǎn)如下圖所示:

VC|MFC的CDC類及如何使用畫(huà)筆繪制各種圖形(vc應(yīng)用mfc畫(huà)圖的詳細(xì)步驟)

Pie()函數(shù)的參數(shù)與上述Arc()函數(shù)相同。

-End-

版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn),該文觀點(diǎn)僅代表作者本人。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請(qǐng)發(fā)送郵件至 舉報(bào),一經(jīng)查實(shí),本站將立刻刪除。

(0)
上一篇 2024年7月25日 下午6:13
下一篇 2024年7月25日 下午6:24

相關(guān)推薦

  • 成都市項(xiàng)目管理系統(tǒng)

    成都市項(xiàng)目管理系統(tǒng) 隨著信息技術(shù)的不斷發(fā)展,項(xiàng)目管理已經(jīng)成為現(xiàn)代企業(yè)不可或缺的一部分。成都市作為四川省的政治、經(jīng)濟(jì)、文化中心,也在信息化建設(shè)方面取得了顯著進(jìn)展。為了滿足企業(yè)對(duì)項(xiàng)目管…

    科研百科 2024年7月14日
    28
  • 軟件開(kāi)發(fā)用什么語(yǔ)言好呢(軟件開(kāi)發(fā)用什么語(yǔ)言好呢知乎)

    做軟件到底用哪種語(yǔ)言好呢?在選語(yǔ)言的這件事上很多老板就頭疼了。那么作為一個(gè)資深互聯(lián)網(wǎng)從業(yè)者我就給各位老板分析一下。 開(kāi)發(fā)分為前端和后端 原生開(kāi)發(fā)前端一般用KOTLIN或者SWIFT…

    科研百科 2023年5月20日
    261
  • 軟件開(kāi)發(fā)項(xiàng)目進(jìn)度管理軟件

    軟件開(kāi)發(fā)項(xiàng)目進(jìn)度管理軟件 隨著軟件開(kāi)發(fā)的日益復(fù)雜和加速,開(kāi)發(fā)團(tuán)隊(duì)越來(lái)越需要一種高效的方式來(lái)跟蹤和管理項(xiàng)目進(jìn)度。軟件開(kāi)發(fā)項(xiàng)目進(jìn)度管理軟件是一種專門用于 this 目的的工具,可以幫助…

    科研百科 2024年8月21日
    2
  • 科研項(xiàng)目管理流程圖

    科研項(xiàng)目管理流程圖 科研項(xiàng)目管理流程圖是用于描述科研項(xiàng)目從開(kāi)始到結(jié)束整個(gè)過(guò)程中各個(gè)步驟和角色之間的相互關(guān)系的圖形化工具。以下是一個(gè)基本的科研項(xiàng)目管理流程圖。 “` +&…

    科研百科 2024年11月6日
    8
  • 項(xiàng)目實(shí)戰(zhàn)網(wǎng)吧管理系統(tǒng)

    項(xiàng)目實(shí)戰(zhàn)網(wǎng)吧管理系統(tǒng) 隨著互聯(lián)網(wǎng)的普及,網(wǎng)吧已經(jīng)成為人們娛樂(lè)休閑的重要場(chǎng)所。然而,傳統(tǒng)的網(wǎng)吧管理存在著一些問(wèn)題,如管理混亂、服務(wù)差、安全性不高等。為了解決這些問(wèn)題,我們開(kāi)發(fā)了一套基…

    科研百科 2025年1月21日
    2
  • 科研項(xiàng)目執(zhí)行及驗(yàn)收過(guò)程存在問(wèn)題

    科研項(xiàng)目執(zhí)行及驗(yàn)收過(guò)程存在問(wèn)題 近年來(lái),隨著科技的飛速發(fā)展,科研項(xiàng)目的應(yīng)用范圍也越來(lái)越廣泛。然而,在科研項(xiàng)目的執(zhí)行和驗(yàn)收過(guò)程中,仍然存在一些問(wèn)題,這些問(wèn)題可能會(huì)對(duì)項(xiàng)目的成果和質(zhì)量產(chǎn)…

    科研百科 2024年10月21日
    32
  • 對(duì)建設(shè)工程項(xiàng)目管理的認(rèn)識(shí)

    對(duì)建設(shè)工程項(xiàng)目管理的認(rèn)識(shí) 建設(shè)工程項(xiàng)目管理是指對(duì)一項(xiàng)建筑工程從規(guī)劃、設(shè)計(jì)、施工、驗(yàn)收、維護(hù)等一系列活動(dòng)的管理。作為一項(xiàng)復(fù)雜的工程,建設(shè)工程項(xiàng)目管理的重要性不言而喻。本文將從以下幾個(gè)…

    科研百科 2024年8月17日
    3
  • 河北省衛(wèi)生廳重點(diǎn)科研項(xiàng)目河北省衛(wèi)生廳重點(diǎn)科研項(xiàng)目

    河北省衛(wèi)生廳重點(diǎn)科研項(xiàng)目 近年來(lái),河北省衛(wèi)生廳一直致力于推動(dòng)醫(yī)療衛(wèi)生事業(yè)的發(fā)展。為了進(jìn)一步提高醫(yī)療衛(wèi)生水平,河北省衛(wèi)生廳重點(diǎn)開(kāi)展了多項(xiàng)科研項(xiàng)目。其中,最具代表性的就是“河北省特色醫(yī)…

    科研百科 2024年6月18日
    40
  • 低代碼java問(wèn)答

    低代碼開(kāi)發(fā)是一種新興的軟件開(kāi)發(fā)方法,它通過(guò)使用圖形化界面和少量的編碼來(lái)快速構(gòu)建應(yīng)用程序。在低代碼開(kāi)發(fā)中,Java是一種常用的編程語(yǔ)言。在本文中,我們將回答一些與低代碼開(kāi)發(fā)和Java…

    科研百科 2024年2月29日
    100
  • 智慧停車場(chǎng)(智慧停車場(chǎng)系統(tǒng)管理)

    隨著社會(huì)的進(jìn)步和發(fā)展,城市由于交通工具的增加造成的交通擁擠甚至混亂給人們的生活帶來(lái)極大的不便,如圖所示車主遇到的困難主要有以下幾方面: 虹鵬科技將改變智慧城市的停車方式,停車方式的…

    科研百科 2023年4月28日
    289