如何根据窗口宽度和给定字符串,计算窗口一行可显示字符串中的多少个字符? 我想实现自动根据窗口长度对显示在窗口内的字符串进行换行的功能,类似记事本的自动换行功能. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 窗口客户区RECT你能得到TEXT长度你能得到TEXT高度你能得到剩下的就是计算你打算怎么换 如果是定长字体,很简单,根据字体宽度计算;如果是变长字体,用GetTextExtent计算字符串长度。 我的意思实现类似下面函数的功能:unsigned long GetStringCount(CDC * pDC,CSize szIn,CString strOut){ TEXTMETRIC tm; unsigned long nTextCount=strOut.GetLength(); unsigned long nCount=0; unsigned long nWidth=0; pDC->GetTextMetrics(&tm); nCount=szIn.cx/tm.tmAveCharWidth; nWidth=pDC->GetTextExtent(strOut.GetBuffer(),nCount>nTextCount?nTextCount:nCount).cx; if(nWidth>szIn.cx) { do{ nWidth-=pDC->GetTextExtent(strOut.GetBuffer()+nCount-1,1).cx; nCount--; }while(nWidth>szIn.cx); }else if(nWidth<szIn.cx) { unsigned long nw=nWidth; unsigned long nc=nCount; while(true) { nc++; if(nc>nTextCount) break; nw+=pDC->GetTextExtent(strOut.GetBuffer()+nCount,1).cx; if(nw>szIn.cx) break; else { nWidth=nw; nCount=nc; } } } return nCount; }匆匆忙忙编程的不知是否有错,我就是想要实现上面函数功能的最好方法. [求助]用mfc显示jpg图片的问题 请问vc2005怎样新建一个服务 字符串问题 在线等!!!!!!! 请问如何知道光驱中有磁盘?急!急!急! 窗体添加了CTreeCtrl控件之后就整个窗体都显示不出来了,程序结束。原因是什么??在线,急.... 结构数组和结构指针(在线等) (1)电影服务器的问题。 初学C最合适的书? GetFieldValue获得数值大于等于100的就异常? STL问题 VC ADO 数据维护程序设计思路,请各位帮忙指正 richedit怎么保存文字格式啊?
TEXT长度你能得到
TEXT高度你能得到
剩下的就是计算你打算怎么换
{
TEXTMETRIC tm;
unsigned long nTextCount=strOut.GetLength();
unsigned long nCount=0;
unsigned long nWidth=0;
pDC->GetTextMetrics(&tm);
nCount=szIn.cx/tm.tmAveCharWidth;
nWidth=pDC->GetTextExtent(strOut.GetBuffer(),nCount>nTextCount?nTextCount:nCount).cx;
if(nWidth>szIn.cx)
{
do{
nWidth-=pDC->GetTextExtent(strOut.GetBuffer()+nCount-1,1).cx;
nCount--;
}while(nWidth>szIn.cx);
}else if(nWidth<szIn.cx)
{
unsigned long nw=nWidth;
unsigned long nc=nCount;
while(true)
{
nc++;
if(nc>nTextCount)
break;
nw+=pDC->GetTextExtent(strOut.GetBuffer()+nCount,1).cx;
if(nw>szIn.cx)
break;
else
{
nWidth=nw;
nCount=nc;
}
}
}
return nCount;
}匆匆忙忙编程的不知是否有错,我就是想要实现上面函数功能的最好方法.