MFC字体磅数与像素&CImage
字体磅数与像素
关于像素和磅的关系,我们来换算一下。在小字体的时候,分辨率是 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
- 上一篇: 常用的表单正则验证
- 下一篇: GDI 与 GDIPlus 获取文字宽度的方法