win32下绘制多行文本
来源:互联网 发布:access数据库的用途 编辑:程序博客网 时间:2024/04/28 08:30
1、创建字体
LOGFONT lf = { 0 };::GetObject(::GetStockObject(DEFAULT_GUI_FONT), sizeof(LOGFONT), &lf);_tcsncpy(lf.lfFaceName, fontName, LF_FACESIZE);lf.lfCharSet = DEFAULT_CHARSET;lf.lfHeight = -fontHeight;lf.lfWeight += FW_BOLD;HFONT hFont = ::CreateFontIndirect(&lf);
fontName为字体名称,例如,“宋体”;字符集采用默认字符集;FW_BOLD表示加粗显示;lf.lfHeight表示字体高度,设置时是负数。
2、绘制文本
SelectObject(hdc, hFont);::DrawText(hdc, text, -1, &r, DT_NOPREFIX|DT_LEFT);DeleteObject(hFont);
3、绘制多行文本
void DrawMultiLine(HDC hdc,CString str, int* pos, LPCTSTR fontName,int fontHeight){ int comsumed = 0;int len;RECT r;str.Trim();len = str.GetLength(); LOGFONT lf = { 0 };::GetObject(::GetStockObject(DEFAULT_GUI_FONT), sizeof(LOGFONT), &lf);_tcsncpy(lf.lfFaceName, fontName, LF_FACESIZE);lf.lfCharSet = DEFAULT_CHARSET;lf.lfHeight = -fontHeight;HFONT hFont = ::CreateFontIndirect(&lf);if( hFont == NULL ) return;SelectObject(hdc, hFont);while(comsumed < len){ r.top = *pos;r.left = page_left, r.right = mWidth;r.bottom = *pos + text_height + TEXT_BOTTOM;DRAWTEXTPARAMS drawParams; ZeroMemory(&drawParams, sizeof(DRAWTEXTPARAMS)); drawParams.cbSize = sizeof(DRAWTEXTPARAMS); str = str.Right(len - comsumed);DrawTextEx(hdc,str.GetBuffer(), str.GetLength(), &r, DT_LEFT | DT_EDITCONTROL | DT_WORDBREAK | DT_EXTERNALLEADING | DT_NOPREFIX, &drawParams); comsumed += drawParams.uiLengthDrawn;*pos += TEXT_HEIGHT + TEXT_BOTTOM;}DeleteObject(hFont);}
DRAWTEXTPARAMS drawParams 这个参数获取当前行绘制了多少字符,mWidth为行宽。如果字符串没有绘制完,继续下一行。
0 0
- win32下绘制多行文本
- 多行文本绘制
- 多行文本绘制
- 使用DrawTextEx绘制多行文本
- MRC下多行文本输入UITextView
- C#--GDI+绘制多行文本和格式化文本
- 打印多行文本
- 多行文本框
- 多行文本溢出
- 多行文本溢出
- 控制多行文本
- 多行文本居中
- delphi下DrawText多行文本输出,英文有问题
- WPF下TextBox允许多行文本的设置
- linux 下用shell 写入多行文本
- linux 下用shell 写入多行文本
- SetDlgItemText显示多行文本
- 多行文本弹出窗口
- 《ACM程序设计》书中题目―O
- AdaBoost学习笔记 概述
- Dagger2 入门
- JavaScript:JSON
- win7笔记本电脑如何分割和重命名磁盘
- win32下绘制多行文本
- 建立缓存组时可以改变数据类型吗
- 二叉树四种遍历方式的速度差异
- 论React后台管理系统开发模式
- 1004. To Buy or Not to Buy
- 数组常见的问题
- 相邻两数最大差值
- VS2010-MFC下控件Win7风格设置
- java开发中的关键字