使用所有可用字体(从C#到C++/CLI)创建组合框

Creating a comboBox with all available fonts (from C# to C++/CLI)

本文关键字:CLI 创建 创建组 组合 C++ 字体      更新时间:2023-10-16

我正在尝试创建一个组合框,并用系统中所有可用字体的列表填充它。我看了这个主题-->用可用字体列表填充组合框,在C#中发现了以下代码:

     List<string> fonts = new List<string>();
        foreach (FontFamily font in System.Drawing.FontFamily.Families) 
         {        
           fonts.Add(font.Name); 
         }

我试图在C++/CLI:中将其转换为类似的内容

List<string> fonts = gcnew List<string>();
             foreach (FontFamily font in System::Drawing::FontFamily::Families)
             {
                 fonts->Add(font->Name);
             }

但它没有起作用。有人能帮我把C#代码转换成C++/CLI吗?

受此网站启发,您可以这样写:

list<string>* fonts = new list<string>();
System::Collections::IEnumerator^ myEnum = FontFamily::Families->GetEnumerator();
while (myEnum->MoveNext())
{
    FontFamily^ oneFontFamily = safe_cast<FontFamily^>(myEnum->Current);
    fonts->push_back(oneFontFamily->Name);
}

fonts这里是一个指针,C#中不存在某些东西,请注意!