如何修改 VC6.0 4.0 2010 打印预览界面上的文字

前言:虽然早已下决心不再碰微软的东西,但手头的项目还得需要维护。遇到问题还能解决。

问题由来:

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

也在一番无谓的尝试之后,打开工程下的*.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看看,发现了如下图:

修改项目工程下的*.res,使其指向对应的文件,就ok了。

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

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-08-23 17:06:40

如何修改 VC6.0 4.0 2010 打印预览界面上的文字的相关文章

对话框上添加打印预览和打印

以下的内容是照着CSDN上下载的一份代码写的,如有不对望指正 打印预览和打印流程在对话框类建立一个框架类的对象指针成员,框架类可以派生自 CFrame, 当要打印的时候,现创建出框架对象,可以将当前的对话框的窗口对象传到框架对象中保存然后框架对象调用 Create 创建自己的窗口,在框架的OnCreate函数中创建view, view是派生自 CScrollView 的,并且设置 m_nMapMode 为 MM_TEXT,这个最好在构造函数中可以使用框架类的 CreateView然后将打印的内容

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

原文:http://masatokinugawa.l0.cm/2014/11/ie-printpreview-infoleak.html 问题1: 在IE9和以前的版本当中进行打印预览操作时,IE会取出原始页面的URL并将URL放到重新生成的html中的base标签的href属性里. 由于此处并没有对URL中的" < >等符号进行任何的处理可导致信息泄漏.虽然打印预览界面中,是没办法执行JavaScript的,但是我们可以构造这样的URL: http://vulnerabledoma

cocos2d-x 3.0游戏实例学习笔记 《卡牌塔防》第0步---知识点总结&amp;效果预览

/* 说明: **1.本次游戏实例是<cocos2d-x游戏开发之旅>上的最后一个游戏,这里用3.0重写并做下笔记 **2.我也问过木头本人啦,他说:随便写,第一别完全照搬代码:第二可以说明是学习笔记 **3.这里用cocos2d-x 3.0版本重写,很多地方不同,但是从重写过程中也很好的学习了cocos2d-x */ 环境:Win7 .cocos2d-x 3.0final .C++ .VS2012 笔记思路:后面就按这种思路写笔记啦 1.首先给出每次实现的效果截图 2.然后给出设计思路 3.

C# 打印和打印预览

C#打印和C#打印预览的实现的三大部分:页面设置.打印预览.打印具体用到的类和属性事件都是什么内容呢?那么本文就向你介绍C#打印和C#打印预览的实现具体事宜. 我们谈到C#打印和C#打印预览的实现其中主要就是包括:页面设置.打印预览.打印三大部分.打印的原理是:生成mdi文件,系统碰到mdi的时候会自动以打印的方式处理.所以,不管用什么模板,什么方式:能在PrintPage事件处理中,生成一张要打印内容的图片就OK了!主要的支持类都包括在命名空间System.Drawing.Printing中,

1.关于QT中的Graphics绘图,定时器,动画,将窗口中的内容打印到图片上,打印机,打印预览

 1 新建项目 A  修改pro中的内容如下: HEADERS += \ MyWidget.h SOURCES += \ MyWidget.cpp QT += gui widgets printsupport B  编写MyWidget.h #ifndef MYWIDGET_H #define MYWIDGET_H   #include <QWidget> #include <QGraphicsScene> #include <QGraphicsLineItem>

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

原文:C#实现打印与打印预览功能 在windows应用程序中文档的打印是一项非常重要的功能,在以前一直是一个非常复杂的工作,Microsoft .Net Framework的打印功能都以组件的方式提供,为程序员提供了很大的方便,但是这几个组件的使用还是很复杂的,有必要解释一下. 打印操作通常包括以下四个功能: 1 打印设置 设置打印机的一些参数,比如更改打印机驱动程序等; 2 页面设置 设置页面大小纸张类型等 3 打印预览 类似于word中的打印预览 4 打印 实现打印功能的核心是PrintDo

c#教程之打印和打印预览

4.1      打印和打印预览 打印和打印预览是一个编辑器必须具有的功能,本节介绍实现打印和打印预览的方法.一般要实现如下菜单项:打印.打印预览.页面设置. 4.8.1PrintDocument类 PrintDocument组件是用于完成打印的类,其常用属性.方法和事件如下:l  属性DocumentName:字符串类型,记录打印文档时显示的文档名(例如,在打印状态对话框或打印机队列中显示).l  方法Print:开始文档的打印.l  事件BeginPrint:在调用Print方法后,在打印文

jqprint的网页打印,打印预览可以包含图片

自己负责的模块需要有个试卷打印的功能,需要将网页特定范围内的内容打印出来,所以选择了jquery.jqprint脚本 用起来也非常简单. //打印    $("#printPage").jqprint({        debug: false,//如果是true则可以显示iframe查看效果,默认是false         importCSS: true,//true表示引进原来的页面的css,默认是true.        printContainer: true,//表示如果原

php 实现打印预览的功能

<inputid="btnPrint" type="button" value="打印"onclick="javascript:window.print();" /> <inputid="btnPrint" type="button" value="打印预览" onclick=preview(1)/> <styletype="t