2010-08-15 24 views
0

我創建通過掛鉤的Direct3D應用疊加文字,但我不能得出任何文本。我已經開始使用this sample。庫本身似乎用自己的函數替換所有的D3D調用(最後它調用原來的函數)。我試過DrawText的所有變體,沒有任何結果可見結果。另一方面,我可以用DrawPrimitiveUP繪製原始圖片。另外,winuser.h中定義的DrawText(A)只有5個參數,並且完全缺少所有教程和論壇中提及的字體/顏色。難道我做錯了什麼?繪圖與C++的DirectX

DrawText(NULL, "text", -1, &rct, DT_NOCLIP|DT_SINGLELINE); 

其中&rct是我之前創建的矩形。我直接打電話給IDirect3DDevice9的小孩。

在此先感謝

+0

winuser.h DrawText用於GDI並使用DC當前選定的字體和文本顏色等,因此它爲什麼不出現在參數列表中。 – 2010-08-15 15:20:40

+0

@Logan這意味着我應該在設備之前將其設置?它看起來像我在掛鉤的api中缺少D3DXCreateFont。 – 2010-08-15 15:23:59

+1

GDI是Direct3D的獨立,我不認爲你希望使用DrawText的所有(至少不是直接),我真的不知道很多關於Direct3D的,因此爲什麼這僅僅是一個評論,而不是答案。 它看起來像要呼叫D3DXCreateFont,然後調用DrawText的在所得ID3DXFont實例。 'D3DXCreateFont(...,&pFont); pFont-> DrawText的(...);' – 2010-08-15 15:29:28

回答

1

您正在使用錯誤的DrawText函數(GDI)。嘗試使用ID3DXFont中的一個。 (創建字體後等)。

+0

謝謝,這一點是我沒預料。我知道我可以從D3DXCreateFont獲得字體,但是我沒有IDirect3DDevice9中的這種方法。 MSDN不會說它應該在哪裏http://bit.ly/9kv6Yg。 – 2010-08-15 15:57:36

+1

D3DXCreateFont是一個獨立的函數,而不是一個方法。 – 2010-08-15 15:59:17

+0

@Mikulas就像我說過的,這個函數是ID3DXFont接口的一部分。 http://bit.ly/d9cFN8。您使用的文檔中可能存在一個錯誤,誤導您,也許您可​​以將我們鏈接到一小部分示例代碼,以顯示問題。 – 2010-08-16 09:26:50