9 月 2010

MFC控件CListBox调整大小时的高度注意事项

CListBox控件在进行调整大小时,默认是按照控件内item的高度进行高度变化递增的,也就是说,高度会是单个项高度的倍数,以便完整显示可见项。这样在父窗口OnSize时调整控件大小会出现高度和计算出的填充全客户区大小高度不一致的问题,显示上会有部分区域重绘错误。改变这种默认高度行为的方法就是在创建控件时,加上LBS_NOINTEGRALHEIGHT这个style bit。

终于忍不了了,入手DSTWO替下了DSTT

玩了2年多的IDSL,最近实在是忍不了了,DSTT内核停止更新已经很久了,一些非官方的内核啊,补丁库什么的更新速度也是不尽人意,这点当初刚买机子的时候有同事用老DS加SLOT2端烧录卡的时候就预见到这个问题了,没想到还挺快。考虑再三还是决定入手当红烧录卡DSTWO(花了240,没敢淘宝买,看好多人说收到的卡金手指都锈了…)了,留个影纪念一下吧。PS:淘宝上看到很多人说DSTWO的做工差,这点我倒是没太看出来。不过发现一个比较恶心的问题就是这卡用在DSL上SLOT1槽内会非常紧,插进去就不能弹出来了,问商家,商家说这卡就这样,一般他们用的时候都是只拔小卡(TF卡),还好烧录卡没事也不会总拔。不过这个卡在同事的DSI就没有问题,进出都很顺畅。

用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字体就可以了。