向 MFC 專案新增 D2D 物件

2021-08-27 12:48:56 字數 3030 閱讀 7829

此演練介紹如何將基本 direct2d (d2d) 物件新增到 visual c++ microsoft 基礎類庫 (mfc) 專案中,然後將該專案構建到在漸變背景上輸出「hello, world」的應用程式中。

此演練演示如何完成以下這些任務:

說明

對於在以下說明中使用的某些 visual studio 使用者介面元素,您的計算機可能會顯示不同的名稱或位置。這些元素取決於您所使用的 visual studio 版本和您所使用的設定。有關更多資訊,請參見 visual studio 設定。

系統必備

若要完成本演練,您必須擁有 visual studio。

在「檔案」選單上指向「新建」,然後單擊「專案」。

在「新建專案」對話方塊左窗格的「已安裝的模板」下,展開「visual c++」,然後選擇「mfc」。

在中間窗格中,選擇「mfc 應用程式」。

在「名稱」框中鍵入 mfcd2dwalkthrough。

單擊「確定」。

在「mfc 應用程式嚮導」中,單擊「完成」而不更改任何設定。

在「解決方案資源管理器」中的「mfcd2dwalkthrough」專案的「標頭檔案」資料夾中,開啟 mfcd2dwalkthroughview.h。

將以下**新增到cmfcd2dwalkthroughview類以建立三個資料變數。 複製

cd2dtextformat* m_ptextformat;

cd2dsolidcolorbrush* m_pblackbrush;

cd2dlineargradientbrush* m_plineargradientbrush;

儲存檔案並將其關閉。

在「原始檔」資料夾中,開啟 mfcd2dwalkthroughview.cpp。

cmfcd2dwalkthroughview類的建構函式中,新增以下**。 複製

// enable d2d support for this window:

enabled2dsupport();

// initialize d2d resources:

m_pblackbrush = new cd2dsolidcolorbrush(getrendertarget(), d2d1::colorf(d2d1::colorf::black));

m_ptextformat = new cd2dtextformat(getrendertarget(), _t("verdana"), 50);

m_ptextformat->get()->settextalignment(dwrite_text_alignment_center);

m_ptextformat->get()->setparagraphalignment(dwrite_paragraph_alignment_center);

d2d1_gradient_stop gradientstops[2];

gradientstops[0].color = d2d1::colorf(d2d1::colorf::white);

gradientstops[0].position = 0.f;

gradientstops[1].color = d2d1::colorf(d2d1::colorf::indigo);

gradientstops[1].position = 1.f;

m_plineargradientbrush = new cd2dlineargradientbrush(getrendertarget(),

gradientstops, arraysize(gradientstops),

d2d1::lineargradientbrushproperties(d2d1::point2f(0, 0), d2d1::point2f(0, 0)));

儲存檔案並將其關閉。

在「專案」選單上單擊「類嚮導」。

在「mfc 類嚮導」中的「類名」下,選擇cmfcd2dwalkthroughview

在「訊息」選項卡上的「訊息」框中,選擇 wm_size

,然後單擊「新增處理程式」。

此操作將onsize訊息處理程式新增到cmfcd2dwalkthroughview類。

在「現有處理程式」框中,選擇onsize

單擊「編輯**」以顯示cmfcd2dwalkthroughview::onsize方法。

在此方法的末尾,新增以下**。 複製

m_plineargradientbrush->setendpoint(cpoint(cx, cy));
儲存檔案並將其關閉。

在「專案」選單上單擊「類嚮導」。

在「mfc 類嚮導」中的「類名」下,選擇cmfcd2dwalkthroughview

在「訊息」選項卡上,單擊「新增自定義訊息」。

在「新增自定義訊息」對話方塊的「自定義 windows 訊息」框中,鍵入 afx_wm_draw2d。

在「訊息處理程式名稱」框中,鍵入 ondraw2d。

選擇「已註冊的訊息」選項,然後單擊「確定」。

此操作將 afx_wm_draw2d

訊息的訊息處理程式新增到cmfcd2dwalkthroughview類。

在「現有處理程式」框中,選擇ondraw2d

單擊「編輯**」以顯示cmfcd2dwalkthroughview::ondraw2d方法。

cmfcd2dwalkthroughview::ondrawd2d方法使用以下**。 複製

afx_msg lresult cmfcd2dwalkthroughview::ondraw2d(wparam wparam, lparam lparam)

儲存檔案並將其關閉。

D2D技術介紹

一 d2d技術概述 d2d device to device 通訊是由3gpp組織提出的一種在通訊系統的控制下,允許lte終端之間在沒有基礎網路設施的情況下,利用小區資源直接進行通訊的新技術。它能夠提公升通訊系統的頻譜效率,在一定程度上解決無線通訊系統頻譜資源匱乏的問題。與此同時,它還可以有效降低終...

GDI 的替代者 D2D

winform中的2d繪圖,以前用的都是gdi 在簡單應用環境下,如果不在乎速度,gdi 可以表現的很好。機緣巧合,前段時間做了乙個簡單的3d程式,使用的是c 託管 directx9 sdk,平台是win7 vs2012。專案做完以後,回顧發現,其實也可以使用directx11的direct2d來進...

基於D2D通訊的網路編碼研究

d2d網路中基於立即可解網路編碼的重傳方案研究 d2d device to device 通訊 d2d device to device 通訊是一種蜂窩系統控制下的短距離直接通訊技術,利用系統授權頻段實現通訊,能有效節約系統資源。裝置與裝置之間點到點的終端間直接通訊技術 d2d通訊特點 d2d 網路...