drawtext 换行问题?
void TextMiult::DrawItem(LPDRAWITEMSTRUCT lp)
{
CDC *pDC=CDC::FromHandle(lp->hDC);
CRect rc;
GetClientRect(&rc);
CFont font;
font.CreatePointFont(90,"Arial Unicode MS");
pDC->SetBkMode(TRANSPARENT);
//pDC->SelectObject(font);//½«ËûÑ¡Ôñµ½É豸ÖÐ
pDC->SetTextColor(RGB(255,255,255));
CString str;
GetWindowText(str);
CRect boundary(0,0,40,20);
//
CRect rect;
rect.left = rect.top = 0;
rect.right = 200;
rect.bottom = rc.bottom;
//rect(0,0,boundary.Width(),boundary.Height());
int height=pDC->DrawText(str,rc,DT_CALCRECT|DT_CENTER|DT_EDITCONTROL|DT_WORDBREAK);
rect=boundary;
if (boundary.Height()>height)
{
rc.top+=(boundary.Height()-height)/2;
}
pDC->DrawText(str,rc,DT_CENTER|DT_EDITCONTROL|DT_WORDBREAK);
}
//这是画的地方。
void TextMiult:: Create(LPCTSTR lpszCaption,CWnd* pr,CRect rc,UINT id)
{
CButton::Create(lpszCaption,WS_VISIBLE|WS_CHILD,rc,pr,id);
}
//在OnInitDialog()里
m_shi=new TextMiult();
m_shi->Create("122222222222222222222222222222222222222",this,CRect(70,90,200,240),0);这是哪里出了问题。不解求解呀。
相关推荐
解决DrawText中文字与字母之间自动换行
解决DrawText中文字与字母之间自动换行
解决DrawText中文与字母自动换行
代码下载链接: https://pan.quark.cn/s/a4b39357ea24 在研究如何处理“DrawText中文字与字母之间自动换行”的问题时,我们必须首先明确DrawText函数的核心概念及其在Windows编程中的实际用途。DrawText是一种Windows API函数,其功能是将文本渲染到指定的矩形区域内,并且提供了多种文本格式化的选项,包括多行显示、对齐模式等。然而,在处理包含中英文混合的文本时,DrawText的默认操作可能无法满足自动换行的需求,特别是在固定宽度的显示场景下,中文字与英文字母之间的换行机制需要额外的处理。在前面给出的代码片段里,`CTextRender`类的`Discount`成员函数实现了在DrawText中实现自动换行的定制化处理。该函数接受四个参数:指向绘图设备环境的指针`pDC`,要绘制的文本字符串`m_szText`,以及一个整数变量`width`来表示目标绘制空间的宽度。函数的主要目的是计算并嵌入换行符`\n`,以便在渲染文本时能够按照指定的宽度自动进行换行。### 核心步骤详解1. **变量初始化**:函数执行开始时,会初始化几个重要的变量,包括文本长度`length`、字符总数`chCount`、汉字数量`chineseCount`以及一个布尔变量`chineseFlag`,这个变量用来指示当前字符是否为汉字。2. **字符串遍历**:通过循环逐个检查字符串`m_szText`中的字符,识别字符类型(汉字或字母),并据此采取相应的措施。3. **汉字检测与处理**:对于ASCII值小于0或大于255的字符,将其识别为汉字,增加汉字计数,并标记为汉字状态。考虑到汉字通常占用两个字符位置,因此在处理时需要跳过...
DrawText Api code
Draw a Text in PictureBox by using DrawText API Code
VC++利用DrawText在窗体上输出文本
VC++在窗体上输出文本的实例,主要是利用DrawText方法来实现文字输出,为了更全面一些,实例中不但输出了英文字符,还输出了中文,如果您对DrawText的使用方法不熟悉,可下载本源码参考。 运行环境:Windows/Visual C/C++
MFC-TextOut.rar_DrawText_DrawText Visual C++_MFC
MFC环境下文本输出,包括路径层,DrawText函数使用等


界面
