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

相关文章

JAVA Calendar设置上个月时,日期不存在或错误提示问题及解决

《JAVACalendar设置上个月时,日期不存在或错误提示问题及解决》在使用Java的Calendar类设置上个月的日期时,如果遇到不存在的日期(如4月31日),默认会自动调整到下个月的相应日期(... 目录Java Calendar设置上个月时,日期不存在或错误提示java进行日期计算时如果出现不存在的

Mybatis对MySQL if 函数的不支持问题解读

《Mybatis对MySQLif函数的不支持问题解读》接手项目后,为了实现多租户功能,引入了Mybatis-plus,发现之前运行正常的SQL语句报错,原因是Mybatis不支持MySQL的if函... 目录MyBATis对mysql if 函数的不支持问题描述经过查询网上搜索资料找到原因解决方案总结Myb

Nginx错误拦截转发 error_page的问题解决

《Nginx错误拦截转发error_page的问题解决》Nginx通过配置错误页面和请求处理机制,可以在请求失败时展示自定义错误页面,提升用户体验,下面就来介绍一下Nginx错误拦截转发error_... 目录1. 准备自定义错误页面2. 配置 Nginx 错误页面基础配置示例:3. 关键配置说明4. 生效

Springboot3统一返回类设计全过程(从问题到实现)

《Springboot3统一返回类设计全过程(从问题到实现)》文章介绍了如何在SpringBoot3中设计一个统一返回类,以实现前后端接口返回格式的一致性,该类包含状态码、描述信息、业务数据和时间戳,... 目录Spring Boot 3 统一返回类设计:从问题到实现一、核心需求:统一返回类要解决什么问题?

maven异常Invalid bound statement(not found)的问题解决

《maven异常Invalidboundstatement(notfound)的问题解决》本文详细介绍了Maven项目中常见的Invalidboundstatement异常及其解决方案,文中通过... 目录Maven异常:Invalid bound statement (not found) 详解问题描述可

idea粘贴空格时显示NBSP的问题及解决方案

《idea粘贴空格时显示NBSP的问题及解决方案》在IDEA中粘贴代码时出现大量空格占位符NBSP,可以通过取消勾选AdvancedSettings中的相应选项来解决... 目录1、背景介绍2、解决办法3、处理完成总结1、背景介绍python在idehttp://www.chinasem.cna粘贴代码,出

SpringBoot整合Kafka启动失败的常见错误问题总结(推荐)

《SpringBoot整合Kafka启动失败的常见错误问题总结(推荐)》本文总结了SpringBoot项目整合Kafka启动失败的常见错误,包括Kafka服务器连接问题、序列化配置错误、依赖配置问题、... 目录一、Kafka服务器连接问题1. Kafka服务器无法连接2. 开发环境与生产环境网络不通二、序

SpringSecurity中的跨域问题处理方案

《SpringSecurity中的跨域问题处理方案》本文介绍了跨域资源共享(CORS)技术在JavaEE开发中的应用,详细讲解了CORS的工作原理,包括简单请求和非简单请求的处理方式,本文结合实例代码... 目录1.什么是CORS2.简单请求3.非简单请求4.Spring跨域解决方案4.1.@CrossOr

nacos服务无法注册到nacos服务中心问题及解决

《nacos服务无法注册到nacos服务中心问题及解决》本文详细描述了在Linux服务器上使用Tomcat启动Java程序时,服务无法注册到Nacos的排查过程,通过一系列排查步骤,发现问题出在Tom... 目录简介依赖异常情况排查断点调试原因解决NacosRegisterOnWar结果总结简介1、程序在

解决java.util.RandomAccessSubList cannot be cast to java.util.ArrayList错误的问题

《解决java.util.RandomAccessSubListcannotbecasttojava.util.ArrayList错误的问题》当你尝试将RandomAccessSubList... 目录Java.util.RandomAccessSubList cannot be cast to java.