【发布时间】:2015-06-25 14:36:08
【问题描述】:
我想将文本放在 MFC 中的 IDC_TEXT 中。我想使用输入文本自动调整该控件的大小。我使用了我的代码,但它不起作用。你能帮我解决吗?
CFont *m_Font1 = new CFont;
CStatic * m_Label;
m_Font1->CreatePointFont(200, "Time New Roman");
m_Label = (CStatic *)GetDlgItem(IDC_TEXT);
m_Label->SetFont(m_Font1);
m_Label->SetWindowText( _T("") );
//Display text in thread
THREADSTRUCT* ts = (THREADSTRUCT*)param;
CDC* vDC_TXT;
vDC_TXT =ts->_this->GetDlgItem(IDC_TEXT)->GetDC();
ts->_this->GetDlgItem(IDC_TEXT)->SetWindowTextA(text.c_str());
//Update the length-
ts->_this->GetDlgItem(IDC_TEXT)->SetWindowPos(NULL, 0, 0, 1000, 1000, SWP_NOMOVE | SWP_NOACTIVATE | SWP_NOZORDER);
但是,数字(1000,1000)是我亲手设置的。我想根据文本大小自动更改。可以请我解决吗?
【问题讨论】:
-
“不起作用”不是很有帮助。
-
表示显示文本,但是当文本长度大于IDC_TEXT时,文本中的其他字符会丢失。在我的情况下,这就是“不起作用”的意思
-
长镜头(我不使用MFC),这对你有帮助吗:stackoverflow.com/questions/1745693/get-text-width-in-mfc
-
您不会在任何地方更改控件的宽度,所以这并不奇怪。您需要查看上面列出的链接@JackWhiteIII。
-
我看到了,但他们有很多解决方案。你能看看我的代码并给我一个好的解决方案