Mfc 如何格式化CString变量,使其结果是一个包含3列的表?

Mfc 如何格式化CString变量,使其结果是一个包含3列的表?,mfc,format,multiple-columns,cstring,Mfc,Format,Multiple Columns,Cstring,我正在Visual Studio 2013中使用MFC应用程序,我想格式化一个变量CString以显示在编辑控制框的列中 我已经在编辑控制框中添加了一个变量CString,但无法设置文本的格式以显示在列中 这是我的代码: val=_T(“第1列第2列第3列”) 循环 val.Format(val+_T(“%-15ls%-20s%-15ls”),val1,val2,val3); val=val+\u T(“\r\n”); 用于 该代码处于For循环中,其中val1、val2和val3是cstri

我正在Visual Studio 2013中使用MFC应用程序,我想格式化一个变量CString以显示在编辑控制框的列中

我已经在编辑控制框中添加了一个变量CString,但无法设置文本的格式以显示在列中

这是我的代码:


val=_T(“第1列第2列第3列”)
循环
val.Format(val+_T(“%-15ls%-20s%-15ls”),val1,val2,val3);
val=val+\u T(“\r\n”);
用于

该代码处于For循环中,其中val1、val2和val3是cstring变量,并在每次迭代中进行更改

我的结果是:

列1列2列3
hello world transform冰淇淋
你好谷歌比萨饼
我的名字是Ze transform冰淇淋

我想:

列1列2列3
hello world transform冰淇淋
你好谷歌比萨饼
我的名字是Ze transform冰淇淋


你能帮我吗?

你的字体必须是固定音高,如“Courier New”

要更改编辑框的字体,请在OnInitDialog中执行此操作:

CEdit *pEdit = (CEdit*)GetDlgItem(IDC_EDIT1);
CFont *pf = pEdit->GetFont();
LOGFONT lf ;
pf->GetLogFont(&lf);
_tcscpy(lf.lfFaceName, _T("Courier New"));
m_Font.CreateFontIndirect(&lf);
pEdit->SetFont(&m_Font);

CFont m_Font;

在对话框类的声明中。

似乎并不是所有控件都在设置字体后更新。您为CEdit控件设置了什么样式

尝试在SetFont(&mFont)之后手动更新

pEdit->Invalidate();

pEdit->UpdateWindow()只有在编辑控件中使用的字体为固定间距(如“Courier”)时才能执行此操作。非常感谢!!!你救了我的命。成功了。我改变了mfc应用程序的所有字体,它工作了。只能更改编辑框中的字体?它不起作用。我把代码放在OnInitDialog中,它给了我一些小错误。我必须改变两件事:_tcscpy到wcscpy_和CFont m_字体到CFont m_字体。通过此更改,代码运行没有任何问题,但没有更改任何字体类型。也许,因为我在编辑器框中添加了一个变量,它是一个CString。还有其他方法可以改变字体的类型吗?我做到了!谢谢你的帮助。我把密码放错地方了。我只需改变我之前说过的两件事,它就行了。谢谢你的帮助;)