2010-08-15 78 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