牛骨文教育服务平台(让学习变的简单)
博文笔记

MFC字体磅数与像素&CImage

创建时间:2016-02-04 投稿人: 浏览次数:1014

字体磅数与像素

这里写图片描述

  关于像素和磅的关系,我们来换算一下。在小字体的时候,分辨率是 96dpi ,也就是说一英寸能显示 96 个像素;9 磅是 1/8 英寸,所以 96/8=12 像素。也就是说,我们通常见到的字体就是这种 12x12 点阵的字体了。

  另外,在大字体的时候,分辨率是 120dpi ,9 磅是 1/8 英寸,所以 120/8=15 ,就是说大字体时,显示的 9 磅字体其实是 15x15 点阵的字体。
参考自此http://www.cnblogs.com/carekee/articles/2124562.html

根据MSDN:
BOOL CreatePointFont(
int nPointSize,
LPCTSTR lpszFaceName,
CDC* pDC = NULL
);

参数

nPointSize
请求的字体高度点处的十分之几秒。 (例如,传递120请求12点字体。)

    CSize size;
    GetTextExtentPoint32W(pdc->GetSafeHdc(), L"78", 2, &size);
    //[Plot] size.x is 12   size.y is 12 
    TRACE2("[Plot] size.x is %d   size.y is %d 
",size.cx, size.cy);

CImage

CImage类是ATL和MFC共用的一个类,可以用以显示图片。

    //...
    CImage image;
    image.LoadFromResource(AfxGetInstanceHandle(),IDB_BITMAP_YUAN_BLUE);
    image.SetTransparentColor(RGB(255, 255, 255));
    image.Draw(*pdc, CRect(0,0,0,0/*self rect*/));
    //...

1 pdc->SetBkMode(TRANSPARENT); //可去掉pdc->TextOut(__in HDC hdc, __in int x, __in int y)的文字背景
2 当定义多个CImge 变量时, 当某个变量加载图片或保存图片时,启动GDI+,之后, 当其他变量再加载图片或保存时,增加GDI+计数变量
当所有CImage变量都析构完毕时,才关闭GDI+,否则,只是减少GDI+计算变量值。
所以说,CImage类是基于GDI+的。参考http://blog.csdn.net/shuilan0066/article/details/7086371

声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。