游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3953|回复: 11

请问如何使用游戏自带的字体来输出文字?

[复制链接]

19

主题

64

帖子

77

积分

注册会员

Rank: 2

积分
77
发表于 2006-4-3 11:29:00 | 显示全部楼层 |阅读模式
CreateFont似乎只可以使用系统中已经安装的字体。
但是目前很多游戏都使用自带的字体,这些字体都没有进行安装。不知是怎么做到的
也许这只是个小问题,不过小弟还是没有开窍
故望诸位大哥不吝赐教!小弟在此谢过。

28

主题

685

帖子

703

积分

高级会员

Rank: 4

积分
703
发表于 2006-4-3 11:41:00 | 显示全部楼层

Re:请问如何使用游戏自带的字体来输出文字?

虽然是个小问题,但是要做到这点,代码量还是不少的。

85

主题

824

帖子

878

积分

高级会员

Rank: 4

积分
878
QQ
发表于 2006-4-3 11:54:00 | 显示全部楼层

Re:请问如何使用游戏自带的字体来输出文字?

上次在微软网站上看到有写如何载入指定路径下字体文件的方法,
只要调用几个函数就可以了,
LZ可以去找找看

7

主题

61

帖子

61

积分

注册会员

Rank: 2

积分
61
发表于 2006-4-3 14:15:00 | 显示全部楼层

Re:请问如何使用游戏自带的字体来输出文字?

AddFontResource
之后可以和普通字体一样使用
之后记得RemoveFontResource

19

主题

64

帖子

77

积分

注册会员

Rank: 2

积分
77
 楼主| 发表于 2006-4-3 15:10:00 | 显示全部楼层

Re:请问如何使用游戏自带的字体来输出文字?

多谢“逆火十三”兄,你的方法是正解。

另外,再贴一点小弟在网上查到的东东,希望对与小弟有同样困扰的朋友有所帮助:
(http://www.faq-it.org/archives/mfc_basic/0280ae657d4370fad78af25244eced7a.php)

使用应该是这样的:  
1.使用  AddFontResource  把您的字体送入  Windows  字体列表。   
2.使用  SendMessage(HWND_BROADCAST,WM_FONTCHANGE,0,0)  广播通知。   
3.这时候开始,您的字体才可以随意使用。  
4.使用  RemoveFontResource  从  Windows  字体列表删除您的字体。   
5.SendMessage(HWND_BROADCAST,WM_FONTCHANGE,0,0)  再通知一遍。  
===============================  
如果是使用资源中的字体,应该:  
To  install  unique  hidden  font  resources  follow  these  steps:  

1、Copy  the  TrueType  font  file  to  a  temporary  file  with  a  unique  filename  such  as  "ttfont01.ttf"  that  can  be  owned  by  the  instance  of  the  application.   


2、Call  the  CreateScalableFontResource()  function  to  create  a  uniquely  named  temporary  hidden  font  resource  file  that  can  also  be  owned  by  the  instance  of  the  application.   


3、Call  the  AddFontResource()  function  to  install  this  uniquely  named  font  resource  file  for  this  instance  of  the  application.   


4、Use  the  font  in  the  application  as  desired.   


5、When  the  instance  of  the  application  terminates  or  is  otherwise  finished  with  the  font  file,  it  should  uninstall  the  font  resource  by  calling  the  RemoveFontResource()  function  until  it  fails.   


6、Lastly,  the  instance  of  the  application  should  delete  the  temporary  font  resource  file  and  the  temporary  TrueType  font  file  that  it  created.   

CreateScalableFontResource  为一种TureType字体创建一个资源文件,以便能用API函数AddFontResource将其加入Windows系统  !

72

主题

447

帖子

454

积分

中级会员

Rank: 3Rank: 3

积分
454
QQ
发表于 2006-4-3 15:37:00 | 显示全部楼层

Re:请问如何使用游戏自带的字体来输出文字?

还有好多的游戏字体是美工自己画的,然后写一个对应函数,调取相应的字体



--------------------------------
我的个人游戏论坛
http://www.dingge.com/forum

28

主题

685

帖子

703

积分

高级会员

Rank: 4

积分
703
发表于 2006-4-3 15:39:00 | 显示全部楼层

Re:请问如何使用游戏自带的字体来输出文字?

这是安装一种新的字体啊,但很多游戏并没有把他们的字体安装进去。

5

主题

41

帖子

41

积分

注册会员

Rank: 2

积分
41
发表于 2006-4-3 22:57:00 | 显示全部楼层

Re:请问如何使用游戏自带的字体来输出文字?

也可以选择使用truetype字体库,免费的,:)

38

主题

1581

帖子

1614

积分

金牌会员

Rank: 6Rank: 6

积分
1614
QQ
发表于 2006-4-4 21:58:00 | 显示全部楼层

Re: Re:请问如何使用游戏自带的字体来输出文字?

鼯鼠: Re:请问如何使用游戏自带的字体来输出文字?

还有好多的游戏字体是美工自己画的,然后写一个对应函数,调取相应的字体



------------------------...

那要画多少字啊?1000个汉字就话1000个啊,恐怖

97

主题

590

帖子

590

积分

高级会员

Rank: 4

积分
590
QQ
发表于 2006-9-18 13:25:00 | 显示全部楼层

Re:请问如何使用游戏自带的字体来输出文字?

顶,我使用时出现问题
1.使用  AddFontResource  把您的字体送入  Windows  字体列表。   
2.使用  SendMessage(HWND_BROADCAST,WM_FONTCHANGE,0,0)  广播通知。   
3.这时候开始,您的字体才可以随意使用。  
4.使用  RemoveFontResource  从  Windows  字体列表删除您的字体。   
5.SendMessage(HWND_BROADCAST,WM_FONTCHANGE,0,0)  再通知一遍。  

注册后再用DRAWTEXT根本没使用我注册的新字体,还是用了默认字体,而我把我的新字体先放到windows\font\里时,在游戏里可以正常使用,请问是怎么回师
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-25 11:33

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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