Fortran Coder

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

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

[复制链接]

10

帖子

3

主题

0

精华

入门

F 币
67 元
贡献
26 点
跳转到指定楼层
楼主
发表于 2014-12-5 14:29:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请问在quickwin程序中怎么使用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

10

帖子

3

主题

0

精华

入门

F 币
67 元
贡献
26 点
板凳
 楼主| 发表于 2014-12-5 23:35:57 | 只看该作者
谢谢回复。可我说的是资源工具条中有个“string table”这种类型,这应该怎么用。谢谢。

954

帖子

0

主题

0

精华

大师

F 币
184 元
贡献
75 点

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

QQ
地板
发表于 2014-12-5 23:38:37 | 只看该作者
我说的就是它

100

帖子

0

主题

0

精华

专家

F 币
550 元
贡献
291 点

规矩勋章元老勋章

QQ
5#
发表于 2014-12-6 16:16:19 | 只看该作者
怎么编辑 string table 相信你已经会了.
每个string都有一个ID,用2楼的代码,传入ID即可获得字符串.

10

帖子

3

主题

0

精华

入门

F 币
67 元
贡献
26 点
6#
 楼主| 发表于 2014-12-7 11:47:00 | 只看该作者
我是初次接触这个。string table 能像对话框那要用吗?

954

帖子

0

主题

0

精华

大师

F 币
184 元
贡献
75 点

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

QQ
7#
发表于 2014-12-7 12:06:11 | 只看该作者
东西不一样,为啥非要要求同样的用法?

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

10

帖子

3

主题

0

精华

入门

F 币
67 元
贡献
26 点
8#
 楼主| 发表于 2014-12-7 12:34:03 | 只看该作者
谢谢。不是非要相同的用法,而是不知道string table能不能那样用,或者说可用在什么场合。

954

帖子

0

主题

0

精华

大师

F 币
184 元
贡献
75 点

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

QQ
9#
发表于 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 的使用,然后你瞬间就明白了

10

帖子

3

主题

0

精华

入门

F 币
67 元
贡献
26 点
10#
 楼主| 发表于 2014-12-7 14:39:13 | 只看该作者
知道了,谢谢。
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

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

GMT+8, 2024-12-25 21:49

Powered by Tencent X3.4

© 2013-2024 Tencent

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