刚刚用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.   

    WTL确实令人惊叹!它有许多MFC的GUI类的能力,然而却足够小的可执行文件。如果你像我一样,通过MFC学习GUI编程,用MFC提供的控件包容器,你会感到很惬意的,同样内建于MFC的灵活的消息处理亦是如此。如果你像我一样不喜欢数百K的MFC狂架被加到你的程序里,那么WTL就是为你准备的。然而,有一些障碍我们必须克服:首先,ATL风格的模板看起来很怪 
    没有ClassWizard支持,所以消息映射包含一些手工劳动 
    MSDN里没有文档,你必须到其他地方寻找,或甚至看WTL源码 
    没有参考书可买 
    微软不提供官方支持 
    ATL/WTL视窗编程与MFC有很大不同,以至于并非你所有的知识都可转移过来 
    另一方面,WTL的优势在于:不包含复杂的文档/视图框架 
    具有源于MFC的基本的UI特性,如DDX/DDV 和 "update command UI"功能 
    事实上提升了一些MFC的特性(例如,更加灵活的切分窗口) 
    比静态链接MFC的代码要小的多 
    你自己可对WTL进行bug修正,而不影响已存在的应用程序(MFC中如果通过替换MFC/CRT的DLL来修正一个应用程序中的bug,往往会是另一应用程序崩溃) 
    如果你仍需要MFC,MFC 和ATL/WTL窗口可以和平共存(举一个工作中的例子,这个例子的结果是,我创建了一个包含WTL CSplitterWindow的MFC CframeWnd,而CsplitterWindow又包含MFC的Cdialogs,这不是我故意卖弄,他是通过修改已有的MFC代码,但使用了更漂亮的WTL分割条得到的。) 
    在这一系列文章中,我将首先介绍ATL视窗编程类。毕竟WTL是加之于ATL的一组类。所以对ATL视窗编程的良好理解是基本的。介绍完这些内容,我将着手介绍WTL特性,并让你知道,他们是如何是GUI编程变的容易的。
      

  2.   

    1、请问有什么方便的方法可以永久改一下窗体和控件的默认预览字体吗?或者有什么简单的代码动态的改控件默认字体吗?2、有谁知道_ATL_MIN_派什么用的? ——————————————————
    | 没有人回答我以上提出的这两个问题吗?|
     ——————————————————
      

  3.   

    _ATL_MIN_不连接 c 库用了WTL 的 CString,需要去掉用了try 需要去掉
      

  4.   

    谢谢newkey007字体什么的自己控制那是当然,只是觉得它的默认字体实在丑了点,难免觉得不爽就像比较java和.net,从技术上讲,两者我都非常喜欢,但看看javaIDE(特别是默认的中文字体),特别是sun自己出的那些个IDE,再看看微软的VS系列,哪个更尊重我们(中国)程序员(起码从编程时的视觉享受上)就很明显了,也难怪sun这么举步维艰了,听说sun最近又亏了,活该啊~~