WTL的几个问题的解决办法

2024-02-18 18:48
文章标签 问题 几个 解决办法 wtl

本文主要是介绍WTL的几个问题的解决办法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1、WTL向导的中文本地化

需要修改两个文件,AppWizFilesTemplates..root.rc,AppWizFilesScripts..default.js。当然,愿意全盘汉化的也可以修改AppWizFilesHTML里面的HTML页面。

注意到这些目录里都有一个1033的子目录,这就是语言区域为USEnglish对应的文件,我们要做的是复制一份,改名为2052,然后修改里面的上边提到的文件。

root.rc修改方法

首先去掉强制语言区域

/

// English (U.S.) resources

#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)

#ifdef _WIN32

LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US

#pragma code_page(1252)

#endif //_WIN32

修改对话框模板,除了改字体,也可以按自己喜好改别的

/

//

// Dialog

//

IDD_ABOUTBOX DIALOG  0, 0, 187, 102

STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU

CAPTION 'About'

FONT 8, 'MS Sans Serif'//改成8,'MS Shell Dlg'

BEGIN

    DEFPUSHBUTTON   'OK',IDOK,130,81,50,14

    CTEXT           '[!output PROJECT_NAME] Application v1.0nn(c) Copyright [!output WTL_CURRENT_YEAR]',IDC_STATIC,25,57,78,

                    32

    ICON            IDR_MAINFRAME,IDC_STATIC,55,26,18,20

    GROUPBOX        '',IDC_STATIC,7,7,115,88

END

[!if WTL_APPTYPE_DLG]

IDD_MAINDLG DIALOG  0, 0, 187, 98

STYLE WS_MINIMIZEBOX | WS_CAPTION | WS_SYSMENU

CAPTION '[!output PROJECT_NAME]'

FONT 8, 'MS Sans Serif'//同上

BEGIN

    DEFPUSHBUTTON   'OK',IDOK,130,7,50,14

    PUSHBUTTON      'Cancel',IDCANCEL,130,24,50,14

    PUSHBUTTON      '&About...',ID_APP_ABOUT,130,77,50,14

END

[!endif]

[!if WTL_VIEWTYPE_FORM]

IDD_[!output UPPERCASE_SAFE_PROJECT_NAME]_FORM DIALOGEX 0, 0, 185, 93

STYLE WS_CHILD | WS_VISIBLE

EXSTYLE WS_EX_CLIENTEDGE

FONT 8, 'MS Sans Serif'//同上

BEGIN

 LTEXT 'TODO: Place form controls on this dialog.',IDC_STATIC,24,42,

  136,8

END

[!endif]

 

汉化字符串资源,比较多,可以参考MFC的向导改Microsoft Visual Studio 8VCVCWizardsAppWizMFCApplicationtemplates2052all.rc

default.js修改方法

这个文件是生成解决方案文件的脚本,把RCTool.Culture = rcEnglishUS;改成RCTool.Culture = wizard.FindSymbol('LCID');

考虑到第一个文件修改工作量很大,可以发电子邮件索要修改好的前一个文件。

===========================================================

2、WTL中CString的使用问题

如果你按照说明定义_WTL_USE_CSTRING,然后包含atlmsic.h,就会出现CString定义不明的编译错误,其实就是编译器分不清你是用WTL::CString,还是ATL::CString。其实你跟本用不着用WTL::CString,它们根本上就是一样的。

避免这类错误的方法就是在atlapp.h前面包含atlstr.h,这个文件里面定义的__ATLSTR_H__和_WTL_USE_CSTRING起的作用是一样的,并且指定CString为ATL::CString,这样就不用包含atlmisc.h了。atlmisc.ht提供的CSize, CPoint,CRect用WindowsAPI来代替也不见得多麻烦。

当然,你也可以把CString从atlmisc.h中移走,不过这有点侵犯别人劳动成功的嫌疑。

=============================================================

3、WTL向导生成的对话框程序中文乱码的解决

首先,选工程属性,把资源的属性改成“中文(中国)”,是不是一定要改,我不确定。

最重要的是,把对话框的字体换成中文字体,比如宋体。

并不需要改成Unicode程序。

这篇关于WTL的几个问题的解决办法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/722114

相关文章

MySQL 设置AUTO_INCREMENT 无效的问题解决

《MySQL设置AUTO_INCREMENT无效的问题解决》本文主要介绍了MySQL设置AUTO_INCREMENT无效的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参... 目录快速设置mysql的auto_increment参数一、修改 AUTO_INCREMENT 的值。

关于跨域无效的问题及解决(java后端方案)

《关于跨域无效的问题及解决(java后端方案)》:本文主要介绍关于跨域无效的问题及解决(java后端方案),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录通用后端跨域方法1、@CrossOrigin 注解2、springboot2.0 实现WebMvcConfig

Go语言中泄漏缓冲区的问题解决

《Go语言中泄漏缓冲区的问题解决》缓冲区是一种常见的数据结构,常被用于在不同的并发单元之间传递数据,然而,若缓冲区使用不当,就可能引发泄漏缓冲区问题,本文就来介绍一下问题的解决,感兴趣的可以了解一下... 目录引言泄漏缓冲区的基本概念代码示例:泄漏缓冲区的产生项目场景:Web 服务器中的请求缓冲场景描述代码

Java死锁问题解决方案及示例详解

《Java死锁问题解决方案及示例详解》死锁是指两个或多个线程因争夺资源而相互等待,导致所有线程都无法继续执行的一种状态,本文给大家详细介绍了Java死锁问题解决方案详解及实践样例,需要的朋友可以参考下... 目录1、简述死锁的四个必要条件:2、死锁示例代码3、如何检测死锁?3.1 使用 jstack3.2

解决JSONField、JsonProperty不生效的问题

《解决JSONField、JsonProperty不生效的问题》:本文主要介绍解决JSONField、JsonProperty不生效的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑... 目录jsONField、JsonProperty不生效javascript问题排查总结JSONField

github打不开的问题分析及解决

《github打不开的问题分析及解决》:本文主要介绍github打不开的问题分析及解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、找到github.com域名解析的ip地址二、找到github.global.ssl.fastly.net网址解析的ip地址三

MySQL版本问题导致项目无法启动问题的解决方案

《MySQL版本问题导致项目无法启动问题的解决方案》本文记录了一次因MySQL版本不一致导致项目启动失败的经历,详细解析了连接错误的原因,并提供了两种解决方案:调整连接字符串禁用SSL或统一MySQL... 目录本地项目启动报错报错原因:解决方案第一个:第二种:容器启动mysql的坑两种修改时区的方法:本地

springboot加载不到nacos配置中心的配置问题处理

《springboot加载不到nacos配置中心的配置问题处理》:本文主要介绍springboot加载不到nacos配置中心的配置问题处理,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑... 目录springboot加载不到nacos配置中心的配置两种可能Spring Boot 版本Nacos

Java中JSON格式反序列化为Map且保证存取顺序一致的问题

《Java中JSON格式反序列化为Map且保证存取顺序一致的问题》:本文主要介绍Java中JSON格式反序列化为Map且保证存取顺序一致的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未... 目录背景问题解决方法总结背景做项目涉及两个微服务之间传数据时,需要提供方将Map类型的数据序列化为co

如何解决Druid线程池Cause:java.sql.SQLRecoverableException:IO错误:Socket read timed out的问题

《如何解决Druid线程池Cause:java.sql.SQLRecoverableException:IO错误:Socketreadtimedout的问题》:本文主要介绍解决Druid线程... 目录异常信息触发场景找到版本发布更新的说明从版本更新信息可以看到该默认逻辑已经去除总结异常信息触发场景复