Fortran Coder

查看: 8496|回复: 9
打印 上一主题 下一主题

[绘图界面库] 求助!string table 如何使用?

[复制链接]

954

帖子

0

主题

0

精华

大师

F 币
184 元
贡献
75 点

规矩勋章元老勋章新人勋章水王勋章热心勋章

QQ
楼主
发表于 2014-12-5 21:56:34 | 显示全部楼层
可以用 LoadString 这个 API 函数
[Fortran] 纯文本查看 复制代码
Module Mod_String
  Implicit None
contains
  Character(Len=512) function GetString(Code)
	  Use User32,only:LoadString
    Use Kernel32,only:GetModuleHandle,NULL
	  Integer res
	  Integer , Intent(In) :: Code
	  GetString=''
    res = LoadString( GetModuleHandle(NULL) , Code , GetString , 100 )
	  GetString=GetString( 1 : Len_Trim(GetString)-1 )
	End Function GetString
End Module Mod_String
  
  Program www_fcode_cn
    use Mod_String
    Implicit None
    write(*,*) Trim(GetString(1))
  End Program www_fcode_cn

954

帖子

0

主题

0

精华

大师

F 币
184 元
贡献
75 点

规矩勋章元老勋章新人勋章水王勋章热心勋章

QQ
沙发
发表于 2014-12-5 23:38:37 | 显示全部楼层
我说的就是它

954

帖子

0

主题

0

精华

大师

F 币
184 元
贡献
75 点

规矩勋章元老勋章新人勋章水王勋章热心勋章

QQ
板凳
发表于 2014-12-7 12:06:11 | 显示全部楼层
东西不一样,为啥非要要求同样的用法?

你不能要求像使用杯子一样使用电视机....

954

帖子

0

主题

0

精华

大师

F 币
184 元
贡献
75 点

规矩勋章元老勋章新人勋章水王勋章热心勋章

QQ
地板
发表于 2014-12-7 13:13:47 | 显示全部楼层
本帖最后由 vvt 于 2014-12-7 13:15 编辑

5楼已告知你用法。
string table 和 对话框 完全不是一回事。不要对比两者的用法。(我也不知道你说的“能不能那样用”是什么意思)
string table 说白了,就是把字符串统一到一个地方管理。通常在需要多语言版本的软件时使用。
比如,以前 write(*,*) '开始计算' 如果要改成英文版,就要改动代码,比如写成,write(*,*) 'Begin Calc'
而使用了 string table,代码里统一写成: write(*,*) GetString( IDS_BEGIN_CALC )
这样,中文版的资源和英文版的资源可以都放在一起。当用户在英文系统上使用时,会输出 Begin Calc,在中文系统上使用时,会输出 开始计算
====
我建议你先不要问,先按照沙发和5楼的方法实现一次 String Table 的使用,然后你瞬间就明白了

您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-5-4 15:41

Powered by Tencent X3.4

© 2013-2024 Tencent

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