D3DXCreateText方法 绘制三维网格文字
(1)创建网格 Text指针
- ID3DXMesh* Text =0;
(2)获得设备上下文的句柄
- HDC hdc = CreateCompatibleDC(0);
(3)定义并填充 LOGFONT 对象 lf;
- ZeroMemory(&lf, sizeof(LOGFONT));
- lf.lfHeight = 25;
- lf.lfWidth = 12;
- lf.lfEscapement = 0;
- lf.lfOrientation = 0;
- lf.lfWeight = 500; lf.lfItalic = false;
- lf.lfUnderline = false;
- lf.lfStrikeOut = false;
- lf.lfCharSet = DEFAULT_CHARSET;
- lf.lfOutPrecision = 0;
- lf.lfClipPrecision = 0;
- lf.lfQuality = 0;
- lf.lfPitchAndFamily = 0;
- strcpy((char*)lf.lfFaceName,"Consolas");
(4)创建Font 并把它选入设备上下文中
- HFONT hFont;
- HFONT hFontOld;
(5)创建 hFont,并且设备描述符关联新的hFont(新的
hFont 加载描述符lf)
- ID3DXMesh * Text= 0;
- D3DXCreateText(Device, hdc, _T("Game /n devil"),
- 0.001f, 0.1f, &Text, 0, 0);
(6)还原HDC
- SelectObject(hdc,HFontOld);
- DeleteObject( hFont );
- DeleteDC( hdc );
(7)在Display()方法中 设置材质,
并 调用DrawSubset(0)方法绘制文字
在Device->BeginScene();和 Device->EndScene();之间调用
Device->SetMaterial
(&d3d::WHITE_MTRL);
Text->DrawSubset(0);
效果如下: