GDI+中字体单位的实际意义

GDI+ Font有构造函数Font::Font(FontFamily*,REAL,INT,Unit),Unit可取    
 UnitWorld = 0,

    UnitDisplay= 1,

    UnitPixel= 2,

    UnitPoint= 3,

    UnitInch= 4,

    UnitDocument= 5,

    UnitMillimeter= 6



    FontFamily fontFamily(_T("宋体"));

    Font font1(&fontFamily,13.0,FontStyleRegular,UnitPoint);

写下上述2行代码,我期待能有13号字体出现,的确,在客户区出现了13号字,但是打印预览的时候字变的非常小.原来打印时,程序先将会先根据屏幕DPI把字体由单位point转化为单位pixel,然后根据pixel1:1(假设没有根据DPI设置窗口视口映射)映射到打印预览界面,而不是直接在打印预览上面写13号字体。要想打印打印预览时也有13号字就要自己根据DPI纵向比例设置字体的大小(当前构造函数中的第二个参数)(通过纵向比例可以设置字体的高,高确定了之后因为字体的宽高比是固定的,所以宽也就确定了,GDI+中的字体没有宽度这个参数了),但是如果设置了映射模式为MM_ANISOTROPIC,字体的宽高比就没有意义了,因为字体的宽高会分别由映射模式里的横向纵向比例确定

你可能感兴趣的:(GDI+)