您的位置:首页 > 编程语言 > C语言/C++

DirectX中绘制文字效果分析(3D/c++)

2011-03-12 22:07 519 查看
D3DXCreateText方法 绘制三维网格文字

(1)创建网格 Text指针

Code:

ID3DXMesh* Text =0;

(2)获得设备上下文的句柄

Code:

HDC hdc = CreateCompatibleDC(0);

(3)定义并填充 LOGFONT 对象 lf;

Code:

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 并把它选入设备上下文中

Code:

HFONT hFont;

HFONT hFontOld;

(5)创建 hFont,并且设备描述符关联新的hFont(新的

hFont 加载描述符lf)

Code:

ID3DXMesh * Text= 0;

D3DXCreateText(Device, hdc, _T("Game /n devil"),

0.001f, 0.1f, &Text, 0, 0);

(6)还原HDC

Code:

SelectObject(hdc,HFontOld);

DeleteObject( hFont );

DeleteDC( hdc );

(7)在Display()方法中 设置材质,

并 调用DrawSubset(0)方法绘制文字

在Device->BeginScene();和 Device->EndScene();之间调用

Device->SetMaterial

(&d3d::WHITE_MTRL);

Text->DrawSubset(0);

效果如下:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: