首先获取窗口客户区矩形,然后使用DrawText输出,设置DT_CENTER 和 DT_VCENTER标志;
输出如上图;没有实现垂直居中;
最终的代码如下;
void CcenterView::OnDraw(CDC* pDC)
{
CcenterDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (!pDoc)
return;
// TODO: 在此处为本机数据添加绘制代码
CRect rect1;
CRect recttmp;
GetClientRect(rect1);
recttmp = rect1;
//计算要显示的字符串高度
int height = pDC->DrawText(_T(" 江 雪 \n\n 唐朝 柳宗元\n\n千 山 鸟 飞 绝 ,\n\n万 径 人 踪 灭 。\n\n孤 舟 蓑 笠 翁 ,\n\n独 钓 寒 江 雪 。"), recttmp, DT_CALCRECT | DT_CENTER | DT_EDITCONTROL | DT_WORDBREAK);
//垂直、水平居中显示
rect1.top += (rect1.Height() - height) / 2;
pDC->DrawText(_T(" 江 雪 \n\n 唐朝 柳宗元\n\n千 山 鸟 飞 绝 ,\n\n万 径 人 踪 灭 。\n\n孤 舟 蓑 笠 翁 ,\n\n独 钓 寒 江 雪 。"), rect1, DT_