MFC 中自定义输出字体CFont和获得系统当前默认字体CFont

		CFont newfont;
		CFont *oldfont = pDC->GetCurrentFont();
		newfont.CreateFont(16, 6, 0, 0, 600,
			TRUE, FALSE, FALSE, 0, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH | FF_ROMAN, _T("Arial"));
		CFont *pOldFont = pDC->SelectObject(&newfont);
		pDC->TextOut(left + spotlen, up + 3, UClassName);
		newfont.DeleteObject();
		pDC->SelectObject(oldfont);
		oldfont->DeleteObject();

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果你想让字体的高度随着 `rect` 的变化自适应地改变,可以在 MFC 使用 `SetWindowPos` 函数来调整字体的高度。 以下是一个示例代码,展示了如何实现这个功能: ```cpp CRect rect; // 假设有一个 rect 对象,表示矩形区域 CFont font; // 创建字体对象 font.CreatePointFont(80, _T("Arial")); // 设置字体的初始高度 int initialHeight = 80; int newHeight = initialHeight; // 根据 rect 的高度自适应调整字体的高度 while (newHeight > 0 && newHeight > rect.Height()) { newHeight--; font.DeleteObject(); font.CreatePointFont(newHeight, _T("Arial")); } // 使用新的字体进行绘制或其他操作 CClientDC dc(this); CFont* pOldFont = dc.SelectObject(&font); // ... // 在这里进行绘制操作 // ... // 恢复原始字体 dc.SelectObject(pOldFont); ``` 在上述示例,我们首先创建一个 `CFont` 对象,并设置初始的字体高度为 `initialHeight`(此处设为 80)。然后,使用 `CreatePointFont` 函数根据指定的字体高度和字体名称创建字体对象。 接下来,我们使用 `while` 循环来逐步减小字体高度,直到找到适合的高度。在每一次循环,我们删除之前创建的字体对象,并使用新的高度来创建字体。然后,通过比较新的高度和 `rect` 的高度,来决定是否继续循环。如果新的高度小于等于 `rect` 的高度,或者高度已经减至 0,循环将终止。 最后,我们使用新的字体对象进行绘制或其他操作。在完成操作后,记得恢复原始的字体对象。 请注意,这只是一个简单的示例代码,你可能需要根据实际需求进行适当的调整。 希望对你有所帮助!如有其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值