描述:
刚刚用WTL重写了原来用MFC写的信封打印小程序EnvelopPrint,MFC版release编译大小200k,upx压缩后94.5k,WTL版release编译大小60k,upx压缩后才30k,果然是又轻又瘦呢~~
不过在用WTL的过程中还是发现她有一些不是特别爽的地方,也碰到些奇怪的问题,不知大家有没遇到过,又有何人知道原因,望不吝赐教!
1、WTL7.0默认的系统编码是US.English,输中文编译输出的程序会显示乱码,不方便;
2、将工程语言属性改成简体中文后,窗体编辑状态现实的中文字体大概是8px,小得变形,而实际便以输出后现实的字体是10px也很小,看起来不是很舒服,并且和编辑阶段效果不一致,很讨厌,默认的中文字体和Java默认中文字体之丑陋有得一拼了,MFC程序默认的中文字体大约是12px或14px的,看起来很舒服,且编辑状态和实际运行大小一致,在这方面要好得多;
请问有什么方便的方法可以永久改一下窗体和控件的默认字体吗?
或者有什么简单的代码动态的改控件默认字体吗?
(以上两个情况不知和我用的是英文版VC6而不是中文版的有没关系?)
3、程序中用到了STL<string>,不过默认情况下不能加上using namespace std;,否则会有冲突,导致编译错误,只能通过std::string引用才OK,奇怪;
4、在WTL程序的release版本Link选项里默认有一项_ATL_MIN_不知有啥用?反正我发现它与string冲突,加上这各选项后LINK会报unresolved _main错误,不加就没事,debug版编译选项里默认没有它,一切ok,一到release就LINK错误,以为见鬼了,找了半天才发现这个错误,有谁知道_ATL_MIN_派什么用的?
当然总的来说,瑕不掩瑜,第一次接触WTL还是深深地爱上了她~~~
下面是两个版本的EnvelopPrint程序, 大家比较一下效果:
1.0(MFC版)
http://teddy.51.net/download/EnvlpPrn.exe
2.0(WTL版)
http://teddy.51.net/download/EnvPrnV2.exe
解决方案1:
做一个稍微专业一点的软件
想字体,颜色这些,都是需要自己控制的