此演練介紹如何將基本 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 網路...