2013-08-16 119 views
1

我想繪製部分透明的對象,但我不知道如何。 我在C++中使用MSDN和編碼。如何在C++中使用DirectX繪製透明矩形?

下面的代碼是我如何畫一個正方形的矩形,但我想繪製一個透明的矩形。

VOID DrawingObject::Draw() 
{ 
    ID2D1HwndRenderTarget *m_pRenderTarget; 
    m_pRenderTarget->FillRectangle(RectF(10, 10, 20, 20), 
     m_pD2DDriver->GetBrush(static_cast<DrawingColor>(m_uColorIndex)) 
     ); 
} 

任何幫助或指導,非常感謝。

+1

認爲你的意思是** DirectX API **,而不是MSDN(這是Windows程序工程師的開發人員資源庫系統)。 – WhozCraig

+0

好電話!我很困惑。 – CodeDoctorJL

回答

3

看看Brush Interface。您可以創建畫筆並使用SetOpacity創建一個透明畫筆以發送到矩形。

您也可以直接使用D2D1::ColorF(red,green,blue,alpha)函數創建顏色。 alpha的論點是透明度。 0是完全透明的,而1是不透明的。

如果您不知道如何使用它,this link包含神奇的示例與代碼如何使用ID2D1筆刷。以下是該頁面的一些示例代碼。

ID2D1SolidColorBrush *pGridBrush = NULL; 
hr = pCompatibleRenderTarget->CreateSolidColorBrush(
    D2D1::ColorF(D2D1::ColorF(0.93f, 0.94f, 0.96f, 1.0f)), 
    &pGridBrush 
    ); 
+1

謝謝柯克,這正是我一直在尋找的。欣賞它(: – CodeDoctorJL

相關問題