一个图形程序中,在窗口中输出文字后(使用"textout()"或其它cdc类的文字输出函数),似乎不管用什么mapmode,不管怎样调整逻辑坐标与设备坐标的对应关系,我都不能实现文字的无限缩放功能。我的目的是缩放比例小到一定程度时,文字(一行或一段)应该在屏幕上形成一个点,而不应该消失,(形成一个点之后就不能再变小,此时虽然看不清文字内容,但一个点总可以让用户知道对应的地方有一个图元。类似于AutoCAD中的情形)。我现在遇到的情况是:缩放比例小到一定程度时,文字就消失了,可能是因为换算出来的文字高度小于一个象素或是不满足文字输出函数的某些限制.很细长的一行文字,例如“BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB"要缩放成看起来没有
什么高宽比的一个点".",请各位兄弟赐教。

解决方案 »

  1.   

    可能不大容易,在OpenGL中可以使用反走样,可是很慢,我以前的做法是用线把文字的轮廓重新描一编,能很好地解决这个问题
      

  2.   

    我想应该是和字库有关,从字库中搜索到该文字势必有一个像素的极限,小于这个像素就无法再标示出来
    如过去UCDOS等有16*16字库24*24字库
    可以查一下你所用字库的点阵
    小于这个点阵的就用 dc画点来代替textout
      

  3.   

    也许楼上说的方法还是可行的,做一个文字类,他的Draw方法中查看显示字高小于一个像素就画点