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

相关文章

javacv依赖太大导致jar包也大的解决办法

《javacv依赖太大导致jar包也大的解决办法》随着项目的复杂度和依赖关系的增加,打包后的JAR包可能会变得很大,:本文主要介绍javacv依赖太大导致jar包也大的解决办法,文中通过代码介绍的... 目录前言1.检查依赖2.更改依赖3.检查副依赖总结 前言最近在写项目时,用到了Javacv里的获取视频

Vue3绑定props默认值问题

《Vue3绑定props默认值问题》使用Vue3的defineProps配合TypeScript的interface定义props类型,并通过withDefaults设置默认值,使组件能安全访问传入的... 目录前言步骤步骤1:使用 defineProps 定义 Props步骤2:设置默认值总结前言使用T

Web服务器-Nginx-高并发问题

《Web服务器-Nginx-高并发问题》Nginx通过事件驱动、I/O多路复用和异步非阻塞技术高效处理高并发,结合动静分离和限流策略,提升性能与稳定性... 目录前言一、架构1. 原生多进程架构2. 事件驱动模型3. IO多路复用4. 异步非阻塞 I/O5. Nginx高并发配置实战二、动静分离1. 职责2

解决升级JDK报错:module java.base does not“opens java.lang.reflect“to unnamed module问题

《解决升级JDK报错:modulejava.basedoesnot“opensjava.lang.reflect“tounnamedmodule问题》SpringBoot启动错误源于Jav... 目录问题描述原因分析解决方案总结问题描述启动sprintboot时报以下错误原因分析编程异js常是由Ja

MySQL 表空却 ibd 文件过大的问题及解决方法

《MySQL表空却ibd文件过大的问题及解决方法》本文给大家介绍MySQL表空却ibd文件过大的问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考... 目录一、问题背景:表空却 “吃满” 磁盘的怪事二、问题复现:一步步编程还原异常场景1. 准备测试源表与数据

解决Nginx启动报错Job for nginx.service failed because the control process exited with error code问题

《解决Nginx启动报错Jobfornginx.servicefailedbecausethecontrolprocessexitedwitherrorcode问题》Nginx启... 目录一、报错如下二、解决原因三、解决方式总结一、报错如下Job for nginx.service failed bec

SysMain服务可以关吗? 解决SysMain服务导致的高CPU使用率问题

《SysMain服务可以关吗?解决SysMain服务导致的高CPU使用率问题》SysMain服务是超级预读取,该服务会记录您打开应用程序的模式,并预先将它们加载到内存中以节省时间,但它可能占用大量... 在使用电脑的过程中,CPU使用率居高不下是许多用户都遇到过的问题,其中名为SysMain的服务往往是罪魁

MySQ中出现幻读问题的解决过程

《MySQ中出现幻读问题的解决过程》文章解析MySQLInnoDB通过MVCC与间隙锁机制在可重复读隔离级别下解决幻读,确保事务一致性,同时指出性能影响及乐观锁等替代方案,帮助开发者优化数据库应用... 目录一、幻读的准确定义与核心特征幻读 vs 不可重复读二、mysql隔离级别深度解析各隔离级别的实现差异

C++ vector越界问题的完整解决方案

《C++vector越界问题的完整解决方案》在C++开发中,std::vector作为最常用的动态数组容器,其便捷性与性能优势使其成为处理可变长度数据的首选,然而,数组越界访问始终是威胁程序稳定性的... 目录引言一、vector越界的底层原理与危害1.1 越界访问的本质原因1.2 越界访问的实际危害二、基

Python多线程应用中的卡死问题优化方案指南

《Python多线程应用中的卡死问题优化方案指南》在利用Python语言开发某查询软件时,遇到了点击搜索按钮后软件卡死的问题,本文将简单分析一下出现的原因以及对应的优化方案,希望对大家有所帮助... 目录问题描述优化方案1. 网络请求优化2. 多线程架构优化3. 全局异常处理4. 配置管理优化优化效果1.