VC 如何在一个矩形框中居中显示一个长字符串
2017-10-31 22:29
274 查看
VC 如何在一个矩形框中居中显示一个长字符串
先使用 DT_WORDBREAK 和 DT_CALCRECT标志位调用 DrawText函数获得文字的外框尺寸
再使用将该外框尺寸居中显示实际绘制到窗口矩形框中。示例代码和界面效果图如下所示:
先使用 DT_WORDBREAK 和 DT_CALCRECT标志位调用 DrawText函数获得文字的外框尺寸
再使用将该外框尺寸居中显示实际绘制到窗口矩形框中。示例代码和界面效果图如下所示:
void CPlainCellNode::Draw(CDC* pDC) { if (m_nCols <= 0 || m_nRows <= 0) return; if (m_bHide) return; CRect rc = GetDevRect(); if (rc.Width() <= 0 || rc.Height() <= 0) return; CRect rcWnd; m_pHost->GetClientRect(rcWnd); if (rc.left >= rcWnd.right) return; if (rc.top >= rcWnd.bottom) return; if (rc.right <= rcWnd.left + CCellSheetWnd::s_nLeftBarWidth) return; if (rc.bottom <= rcWnd.top + CCellSheetWnd::s_nHeadeHeight) return; CRgn rgn; rgn.CreateRectRgn(rc.left, rc.top, rc.right, rc.bottom); pDC->SelectClipRgn(&rgn); CRect rcBk = rc; rcBk.top += 1; rcBk.left += 1; pDC->FillRect(rcBk, &m_brBak); pDC->SelectObject(&GetCellGuiPool()->m_CellFont[m_nFontIndex]); UINT nAln = DT_LEFT; if (m_nCellAlign == cat_middle) nAln = DT_CENTER; CRect rcx = rc; pDC->SetBkMode(TRANSPARENT); pDC->SetTextColor(m_clrTxt); pDC->SetBkColor(m_clrBack); int h = pDC->DrawText(m_strText, rcx, DT_TOP | DT_LEFT | DT_WORDBREAK | DT_CALCRECT | DT_EDITCONTROL); // 获得文本高度 int dh = (rc.Height() - h) / 2; int dw = (rc.Width() - rcx.Width()) / 2; rcx.top = rc.top + dh; rcx.bottom = rc.bottom - dh; if (nAln == DT_CENTER) { rcx.left += dw; rcx.right += dw; } pDC->DrawText(m_strText, rcx , DT_TOP | nAln | DT_WORDBREAK); pDC->SelectClipRgn(NULL); }
相关文章推荐
- VC 中的IP地址控件,关联一个DWORD的变量dwValue,如何将这个dwValue按IP地址显示转化成4个数字或者字符串?
- 如何编程将经纬度合并成一个字符串,显示在高德地图上
- 前端学习-如何让一个表格在DIV内居中显示
- 浅谈css中一个元素如何在其父元素居中显示
- VC 常见问题百问~确定应用程序的路径~~如何在对话框中显示一个位图?~~窗口重绘
- VC MFC 对话框,如何实现鼠标拖动显示一个框,松开鼠标框就消失
- 浅谈css中一个元素如何在其父元素居中显示
- 浅谈css中一个元素如何在其父元素居中显示
- 如何设置一个textview的文字显示为垂直居中,水平居左呢
- 如何在JApplet中显示一个JDialog,并让其在屏幕居中显示
- 浅谈css中一个元素如何在其父元素居中显示
- 浅谈css中一个元素如何在其父元素居中显示
- 如何在VC调试器中显示Symbian字符串(译)
- 如何使一个绝对定位的元素居中显示
- 在 Qt 中如何获得一个字符串(QString)在某种字体(QFont)下输出后占据的矩形大小?
- vc 如何判断一个字符串是否是UTF8编码
- VC++中如何判断一个字符串中汉字的个数
- vc 如何判断一个字符串是否是UTF8编码
- 浅谈css中一个元素如何在其父元素居中显示
- 如何在VC调试器中显示Symbian字符串