2010

用BCG Control Bar库的MFC程序中文字体过小问题的解决方法

这个问题和上一个转帖的VS2010 MFC文字过小问题如出一辙,但是那篇帖子里的解决方法只是一个临时的解决方法,对于应用BCG库后的MFC程序,尤其是应用了部分主题以后,即使修改了字体,也会由于UI部分很多地方会调用BCGPGLOBAL_DATA的UpdateFonts导致修改后的font被默认字体覆盖。
其实用源码跟踪了一下后发现,导致中文字体难看的原因其实是Segoe UI这个字体,于是修改了Bcgglobals.cpp中
static const CString strOffice2007FontName = _T(“Segoe UI”);
这行为
static const CString strOffice2007FontName = _T(“Tahoma”);
使用Tahoma字体就可以了。

开启Visual Studio下C++的注释TODO自动列表到TaskList窗口功能

用Eclipse写JAVA时已经习惯了在注释里写TODO,然后Tasks小窗口中就能够看到当前source页里的所有TODO,用起来很方便。这几天用VS 2010写MFC时留了很多TODO,才发现开了VS的Task List窗口竟然看不到代码页里的TODO位置,看了一下M$的官方Blog发现原来只有VC++用这个功能时是需要手动开启的,VB、C#都是直接开启的。VC++开启这个功能的位置如下:
Tools->Options->Text Editor->C/C++->Formatting-> Miscellaneous->Enumerate Comment Tasks。
官方说法这个选项在C++里被默认关闭的原因是due to performance reasons。

取得windows中一些特殊文件夹路径的方法

比如当前用户的documents文件夹、windows安装文件夹等,虽然一些软件的默认文档保存位置通过这种方式取得感觉有点恶心,不过在用户未指定默认目录的情况下通过这种方式取得的路径还是比较合理的。

以下内容转抄自Visual C++ Tips,原始链接:http://weseetips.com/2008/05/01/how-to-get-the-path-of-special-folders-in-windows/

Windows have a number of special folder such as my documents, desktop folder etc. They are special because, their path can be different in system to system. So how can you get the path of special folder in windows?

Continue reading…

[转]Visual studio 2008/2010 MFC程序Menu、Toolbar字体偏小解决办法

原文:http://www.blogjava.net/luchunwei/archive/2010/06/09/323118.html

首先,这是一个MFC的Bug
http://connect.microsoft.com/VisualStudio/feedback/details/505466/mfc-visual-style-font-size-too-small-to-display-chinese-character-clearly-on-windows-xp

解决时间暂时还不确定,临时的方案如下:
App在InitInstance中加入:

Continue reading…

记录VS2010下用BCGControlBar编译程序时的一个小问题

链接期错误信息如下:

1>BCGCBPRO1200StaticUD100.lib(BCGPGridCtrl.obj) : error LNK2001: unresolved external symbol _xGetSystemMetrics@4
1>BCGCBPRO1200StaticUD100.lib(BCGPFrameImpl.obj) : error LNK2001: unresolved external symbol _xGetSystemMetrics@4
1>BCGCBPRO1200StaticUD100.lib(BCGPFullScreenImpl.obj) : error LNK2001: unresolved external symbol _xGetSystemMetrics@4
1>BCGCBPRO1200StaticUD100.lib(BCGPDlgImpl.obj) : error LNK2001: unresolved external symbol _xGetSystemMetrics@4
1>BCGCBPRO1200StaticUD100.lib(BCGPAppBarWnd.obj) : error LNK2001: unresolved external symbol _xGetSystemMetrics@4

Flash CS5的AS3 TLF发布swf的共享库问题

给blog的banner换了个flash版,顺便学学AS3和体验一下CS5系列,结果在开发系统上debug,publish看着都没问题,到了另一个xp系统下访问页面的时候出现flash一直…的问题,下载下来swf用flash player直接打开,蹦出错误提示VerifyError: #1014 flashx.textLayout.container::ContainerController,尝试升级flash activex插件到最新版本以及对fla中的字体进行embed操作都没有解决,最后发现在publish的时候,目录下会连带生成textLayout_1.0.0.595.swz这个东西,查了一下是flash的运行时共享库,原来stage上用到了CS5的新玩意TLF Text Field,而TLF依赖于这个swz库,所以连带这个swz和swf一起发布到网站上就可以了(据说这个库没有的话客户端也会自动去adobe官方下载,但我这一直…没有成功)。

为Eclipse ADT创建的android项目通过ant添加proguard混淆支持

假设已有ADT创建的android项目HelloAndroid并且已经有可用的proguard混淆器(我用的proguard4.4)。
第一步要做的是为项目添加ant build支持。由于ADT插件并不直接支持proguard等混淆器,所以不能像j2me那样在有功能比较完善的插件(如EclipseME等)的基础上直接一键混淆一键打包,不过好在android sdk本身提供了比较完善的ant编译支持,可以通过类似命令行编译的方式,对android项目的整个编译、生成过程进行自定义,从而能够实现对编译中途生成的java bytecode进行插入proguard混淆操作然后再转android dex码生成apk。
进入命令行模式,并切换到项目目录,执行如下命令为ADT创建的项目添加ant build支持:
Continue reading…

Eclipse写AS插件FDT的Not Enough Memory问题(-Xmx512m)

FDT是一个用来写Flash AS项目的非常好用的eclipse插件,很有写java时的感觉,智能感知什么的功能都比较到位,但是这个插件在我的eclipse下一直不太顺畅,启动后总是报内存不足然后让在ini文件中添加-Xmx512m问题!参考狗狗出来的一些资料信息,开始还能通过乱改ini解决,但是后来在最近一次java update后就怎么改也不行了,而且无视这个问题的话,最终会导致eclipse报内存异常,然后功能不起作用,只能关了重开。后来经过一些调整,发现了一个可以解决的ini设置,至少是在我这的环境下不再抱memory问题了,有同样问题的朋友可以试试:
-vmargs
-Xms128M
-Xmx1024M
-XX:PermSize=64M
-XX:MaxPermSize=128M

-XX:+UseParallelGC
最后这行据说是可以在多核cpu上提高gc效率的参数。