前言:尽管早已下决心不再碰微软的东西,但手头的项目还得须要维护。

遇到问题还能解决。

问题由来:

之前的软件开发是基于中文环境开发的,建立项目的时候,选择了中文,为了方便客户使用。我们使用了静态编译的方法,这样用户用我们的软件就不用费尽心思的去装微软的库了,如此以来。像诸如调用“打印预览”功能时,界面上显示的是 “打印”, “下一页”等所有是中文。后期须要做成其它语言的版本号。我们自己开发的对话框全是以语言文件的格式来存放的,仅仅需替换语言文件而不须要改动程序就可实现。仅仅是像系统提供的一些对话框比方“打印预览”界面,就无能为力了。先前觉得。仅仅要到了英文的操作系统下。那些语言就自己主动变成了英文。直到客户反馈过来之后。我们才发现,我们错了。到英文的操作系统下,还是中文的。重要原因是我们採用了静态编译,但这样的编译方式又不能取消。将软件执行所须要的库打包给用户。如今的操作系统百花齐放。风险也蛮大。刚好手头的事情告一段落,产品经理又找到我想新增一个葡萄牙文的,刚好就琢磨琢磨这件事情。

也在一番无谓的尝试之后,打开project下的*.rc资源文件。真是淘到宝了。

在文件里发现

"#include ""l.CHS\\afxres.rc""      // 标准组件\r\n"

 "#include ""l.CHS\\afxprint.rc""    // 打印/打印预览资源\r\n"

#include "l.CHS\afxres.rc"      // 标准组件

#include "l.CHS\afxprint.rc"    // 打印/打印预览资源

既然是打印/打印预览资源,那就去看看究竟是什么玩意吧。在VC2010安装文件夹下搜索,发现了好几个这种文件例如以下图:

近期刚刚攻克了linux环境下中文字符的问题,所以对CHS还是比較敏感的,那不就是中文的意思嘛,其它几个。不用问肯定是别的语言了,第一个灭有语言表示的,事实上就是英文,谁让vc是美国佬开发的呢。拷贝出l.chs下的afxprint.rc看看,发现了例如以下图:

改动项目project下的*.res,使其指向相应的文件,就ok了。

解决问题的经验就是。做的久了,对问题有一定的敏感性。先是用 打印预览的ids搜索整个project,一一浏览。结果在.res发现端倪。假设你不知道afxres.rc是干嘛用的,去中文文件夹下拷贝一个看看吧。多动手才干提高。

怎样改动 VC6.0 4.0 2010 打印预览界面上的文字的更多相关文章

  1. ReportViewer 2010 打印预览,用鼠标快速切换显示比例时报错:存储空间不足,不能处理此命令

    CreateCompatibleDIB 存储空间不足 无法处理此命令 安装 ReportViewer 2010 sp1 即可.

  2. CVE-2013-3908 Internet Explorer打印预览功能可导致信息泄露

    原文:http://masatokinugawa.l0.cm/2014/11/ie-printpreview-infoleak.html 问题1: 在IE9和以前的版本当中进行打印预览操作时,IE会取 ...

  3. Spring Boot 2.0系列文章(五):Spring Boot 2.0 项目源码结构预览

    关注我 转载请务必注明原创地址为:http://www.54tianzhisheng.cn/2018/04/15/springboot2_code/ 项目结构 结构分析: Spring-boot-pr ...

  4. .NET网页打印以及使用打印需要注意的事项(可能会引起VS崩溃的现象、打印预览后关闭功能不管用)

    这两天进行给网页添加打印.打印预览.页面设置的功能.遇到了以下几个问题 [1]在网上查找了一些打印方法,一开始还可以用,后来不知道动到了哪里,点击vs中拆分或者切换到另一个设计和源代码显示方式,就会引 ...

  5. JS 打印功能代码可实现打印预览、打印设置等

      <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.or ...

  6. MyReport:DataGrid的打印和打印预览

    本文说明怎样使用MyReport来实现Flex DataGrid组件的自己主动化打印预览和打印功能. 实现代码 <? xmlversion="1.0" encoding=&q ...

  7. C#实现打印与打印预览功能

    C#实现打印与打印预览功能的思路及代码. 在windows应用程序中文档的打印是一项非常重要的功能,在以前一直是一个非常复杂的工作,Microsoft .Net Framework的打印功能都以组件的 ...

  8. C#教程之打印和打印预览

    最近研究一了一下关于PDF打印和打印预览的功能,在此小小的总结记录一下学习过程. 实现打印和打印预览的方法,一般要实现如下的菜单项:打印.打印预览.页面设置. PrintDocument类 Print ...

  9. C#实现打印与打印预览功能(转)

    在windows应用程序中文档的打印是一项非常重要的功能,在以前一直是一个非常复杂的工作,Microsoft .Net Framework的打印功能都以组件的方式提供,为程序员提供了很大的方便,但是这 ...

随机推荐

  1. adbd cannot run as root in production builds的解决方法

    部分手机root后,使用adb root会出现这个提示. 原因是root不彻底. adb shell之后进入到$界面,su一下才进入到#. 这个之后可以使用root功能了. 注意到,这个时候exit的 ...

  2. Cache操作类

    封装类: using System; using System.Collections.Generic; using System.Linq; using System.Text; using Sys ...

  3. thinkphp 内存查询表 防止多次查库

    //从内存查询 表 以防止多次查库 private static function selectTable($tableName,array $where,$getFirst=false){ $res ...

  4. js滚动

    有选择性的重复造一些轮子,未必是件坏事.Aaron的博客上加了一个悬浮菜单,貌似显得很高大上了.虽然这类小把戏也不是头一次见了,但是从未自己写过.今天就选择性的拿这个功能写一写.下面是这个轮子的开发过 ...

  5. [牛客网练习赛 45 F] Magic Slab 解题报告 (最大权闭合子图)

    interlinkage: https://ac.nowcoder.com/acm/contest/847/F description: solution: 最大权闭合子图; 每个单元格看成一个正权点 ...

  6. Hdu-6230 2017CCPC-哈尔滨站 A.Palindrome Manacher 主席树

    题面 题意:给你一个字符串,问你满足s[i]=s[2n-i]=s[2n+i-2]的子串(这子串长度为3n-2)有多少个,原字符串长度<=5e5 题解:对于这种子串,其实要满足2个回文,跑过一次M ...

  7. Monad的重点

    Monad是非常强有力的概念,在介绍Monad是什么和如何工作的之前,我们应该先确认Monad能解决什么问题.Monad是各种编程问题的的 meta solution,它不是某种特定问题的解决方案,我 ...

  8. Three学习之曲线

    曲线 属性 1. .arcLengthDivisions 当通过.getLengths计算曲线的累积段长度时,此值决定了分割的数量.为了确保在使用.getSpacedPoint等方法时的精度,如果曲线 ...

  9. AngularJs轻松入门

    AngularJs轻松入门系列博文:http://blog.csdn.net/column/details/angular.html AngularJs轻松入门(一)创建第一个应用 AngularJs ...

  10. Android 消息队列机制

    在非UI线程使用Handler进行线程通信时,一般都需要进行3个步骤: 创建Looper Looper.prepar() 创建Handler 启动消息循环Looper.loop() 通过这3步,基本就 ...