如何使Static控件中的文本自动换行

 我来答
匿名用户
2016-02-10
展开全部
不要SS_LEFTNOWORDWRAP的风格是会自动换行,这没错,但是控件高度不会变,所以如果文本长了,后面的就看不见了,实际上,如果你用MoveWindow调整一下它的大小,增加高度,就可以看到后面的

你看看我的例子吧:
void CTestDlg::OnButton1()
{

CWnd * pWnd = GetDlgItem(IDC_STATIC_TEXT);

CString str;

pWnd->GetWindowText(str);

CString sTitle = str;

sTitle += str;

CDC * pDC = pWnd->GetDC();

CSize sz = pDC->GetTextExtent(sTitle);

CRect rc;

pWnd->GetWindowRect(&rc);

ScreenToClient(&rc);

int nRatio = (sz.cx+2)/rc.Width() +1;

rc.bottom = rc.top + (sz.cy) * nRatio;

pWnd->MoveWindow(&rc);

pWnd->SetWindowText(sTitle);

}

每次点击按钮都会将标题长度*2,这里我保持的是控件宽度不变来计算换行后需要的高度~
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式