游戏开发论坛

 找回密码
 立即注册
搜索
查看: 10809|回复: 16

求助,为什么DrawText输出中文是乱码

[复制链接]

7

主题

25

帖子

25

积分

注册会员

Rank: 2

积分
25
发表于 2006-12-29 22:42:00 | 显示全部楼层 |阅读模式
求助,为什么DrawText输出中文是乱码

就是这样...........
头文件如下:

#ifndef INITFONT_H
#define INITFONT_H

#include "d3d9.h"
#include "d3dx9.h"


bool InitFont(IDirect3DDevice9 *D3DDevice,ID3DXFont *&pFont)
{
D3DXFONT_DESCA d3dFont;



//创建字体
ZeroMemory(&d3dFont,sizeof(D3DXFONT_DESCA));
//设置字体名称和高度
strcpy(d3dFont.FaceName,"NEW");
d3dFont.Height=80;
d3dFont.Width=16;
d3dFont.Italic=false;


//创建字体对象
if(FAILED(D3DXCreateFontIndirect(D3DDevice,&d3dFont,&pFont)))
{
MessageBox(NULL,"error","Font",MB_OK);
return false;
}




return true;
}

#endif

///////////////////////不华丽的分割线///////////////////////////////////
主函数中这样:
     g_pFont->DrawText(NULL,"错了啊!!!!!!",-1,&TextPort,0,D3DCOLOR_RGBA(255,255,255,255));
/////////////////////////////

结果却这样:
sf_2006122922425.jpg

35

主题

1735

帖子

1739

积分

金牌会员

Rank: 6Rank: 6

积分
1739
QQ
发表于 2006-12-29 23:09:00 | 显示全部楼层

Re: 求助,为什么DrawText输出中文是乱码

我想英文应该没问题

7

主题

25

帖子

25

积分

注册会员

Rank: 2

积分
25
 楼主| 发表于 2006-12-29 23:24:00 | 显示全部楼层

Re: 求助,为什么DrawText输出中文是乱码

英文的确是没有问题的啊,但是我想用中文,应该怎么做啊?

7

主题

61

帖子

61

积分

注册会员

Rank: 2

积分
61
发表于 2006-12-30 08:44:00 | 显示全部楼层

Re: 求助,为什么DrawText输出中文是乱码

换个字体名字试试

7

主题

25

帖子

25

积分

注册会员

Rank: 2

积分
25
 楼主| 发表于 2006-12-30 17:00:00 | 显示全部楼层

Re: 求助,为什么DrawText输出中文是乱码

请问,是  strcpy(d3dFont.FaceName,"NEW"); 这句话吗?把里面的 "New" 改成系统安装的?

  比如,我机器中安装了 楷体,

         我把"NEW"替换成 "SIMKAI",但是结果仍然不行
         再把"NEW"替换成"SIMKAI.TTF"仍然不行
         再把"NEW"替换成"楷体",仍然不行
         再把"NEW"替换成"楷体(TrueType)",仍然不行..............

5555555555555555555,完全不知道该如何解决

////////////////////////////不华丽的分割线//////////////////////////////////////////
这个是   楷体  的相关信息 :      
sf_2006123017013.jpg

7

主题

61

帖子

61

积分

注册会员

Rank: 2

积分
61
发表于 2006-12-30 19:21:00 | 显示全部楼层

Re: 求助,为什么DrawText输出中文是乱码

换成  "楷体_GB2312"

7

主题

25

帖子

25

积分

注册会员

Rank: 2

积分
25
 楼主| 发表于 2006-12-30 23:55:00 | 显示全部楼层

Re: 求助,为什么DrawText输出中文是乱码

555555555555555555555555
谢谢 逆火前辈 屡次帮忙,但是仍然不行啊................................是不是DX9某些版本不能显示中文啊?或者要安装 XX包 或者 XX补丁??????????????

140

主题

1228

帖子

1233

积分

金牌会员

Rank: 6Rank: 6

积分
1233
QQ
发表于 2006-12-31 00:07:00 | 显示全部楼层

Re: 求助,为什么DrawText输出中文是乱码

这个接口不支持双字节字符集,可以尝试D3DXSprite中的drawText接口。
或者自己调用freetype或者自己调用gdi绘制。

7

主题

25

帖子

25

积分

注册会员

Rank: 2

积分
25
 楼主| 发表于 2006-12-31 00:23:00 | 显示全部楼层

Re: 求助,为什么DrawText输出中文是乱码

谢谢 lights的指点................
太晚了,明天还有课,咱明天再试.....................总之谢谢了,晚安

0

主题

18

帖子

18

积分

新手上路

Rank: 1

积分
18
发表于 2006-12-31 22:03:00 | 显示全部楼层

Re: 求助,为什么DrawText输出中文是乱码

你应该先建个CHAR数组吧!你再把字符串寸到数组里去!
char str[256];
sprintf(str,"错了啊!!!!!!");
g_pFont->DrawText(str,-1,&TextPort,0,D3DCOLOR_RGBA(255,255,255,255));

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-26 05:41

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表