如何在 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*?

如何在 Visual C++ 2008 中将 MFC 应用程序项目添加到 Win32 应用程序项目

C++ MFC CString怎么转换成Double

在 C++ 中将字符串转换为 Cstring

UTF-8、CString 和 CFile? (C++,MFC)