如何在 MFC C++ 中将 CString 值列表添加到 ComboBox 中? [关闭]
Posted
技术标签:
【中文标题】如何在 MFC C++ 中将 CString 值列表添加到 ComboBox 中? [关闭]【英文标题】:How to Add a a List of CString values into a ComboBox in MFC C++? [closed] 【发布时间】:2018-08-22 06:58:21 【问题描述】:我有一个CString
,它是这样的:
CString cstring = "Aaaa\nBadsalkjhf\nSM876\nSKSJDJHALSD";
如何添加每个 CString 并将这些项目作为列表添加到 ComboBox(MFC、C++)中。
【问题讨论】:
“每一个 CString” - 不清楚,这应该是什么意思。这里只有一个CString
。
首先,了解如何在您选择的分隔符上拆分字符串。其次,学习如何使用 MFC 将 a 字符串放入组合框中,最后从第一个中取出字符串,并利用第二个添加它们。至少我会这样做。
【参考方案1】:
试试这个 sn-p:
CStringA cstring = "Aaaa\nBadsalkjhf\nSM876\nSKSJDJHALSD";
// transfer to stringstream to ease splitting
std::stringstream ss;
ss << cstring.GetString();
std::string str;
// splitting using "\n" as the delimiter
while (std::getline(ss,str,'\n'))
ComboBox.AddString(str.c_str());
已编辑:适用于 Unicode
#include<iostream>
#include<sstream>
#include"atlstr.h"
void main()
CStringW cstring = L"Aaaa\nBadsalkjhf\nSM876\nSKSJDJHALSD";
// transfer to stringstream to ease splitting
std::wstringstream ss;
ss << cstring.GetString();
std::wstring str;
// splitting using "\n" as the delimiter
while (std::getline(ss, str, L'\n'))
ComboBox.AddString(str.c_str());
【讨论】:
另一种方法是使用CString::Tokenize:CStringW str; int index 0 ; str = cstring.Tokenize( L"\n", index ); while ( index != -1 ) ComboBox.AddString( str.GetString() ); str = cstring.Tokenize( L"\n", index );
。更少的代码和更少的依赖。
@IInspectable:谢谢,不知道。以上是关于如何在 MFC C++ 中将 CString 值列表添加到 ComboBox 中? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
如何在 C++ 语言中将谷歌地图 API 与 MFC 或 QT 一起使用?
如何在 C++ 中将 Cstring 转换为 TCHAR*?