利用CString::FormatMessage格式化资源ID

本文介绍如何利用MFC的CString::FormatMessage函数格式化包含未格式化消息文本的字符串资源标识符,避免在String Table中逐一添加字词,方便多语言翻译和数据拼接。FormatMessage的使用方式类似于::FormatMessage,格式化部分要求为%n!format string!,其中n表示参数序号,format string可以指定参数类型、宽度和精度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Formated the string resource identifier that contains the unformatted message text by CString::FormatMessage(UINT nFormatID, [, argument]…);

项目需要通过MFC resource 的String Table进行多语言翻译操作, 但在代码中时常会遇到这种多数据拼接的消息

CString message;
//Sheldon于2019年4月14日申请2000元优惠
message = m_user + L"于 " + m_year + L"年" + m_month + L"月" + m_day + L"日申请 " + m_ammount_money + L"元优惠"; 

如果一个字一个字放到String Table中
①是用起来很难受;
②是切换到其他语种翻译起来就比较怪 eg…“sheldon 2018 year 05 month 12 day request 3000 yuan Discount”
所以就想将消息按一整条放到 String Table中, 然后进行数据格式化即可

ID 标题
IDS_STRING102 103 %1于%2!d!年%3!d!月%4!d!日申请%5!d!元优惠
ID 标题
IDS_STRING102
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值