2016-05-02 4 views
0

Я попытался добавить шрифт из памяти (встроенный ресурс) и использовать его для моего окна (приложение C++/cli) ... Код работает, но когда указанный шрифт не установлен на компьютере, текстовое поле использует шрифт по умолчанию вместо моего пользовательского шрифта. Для параметра CompatibleTextRenderingDefault установлено значение true.Система :: Рисование :: Текст :: PrivateFontCollection не работает, когда шрифт не установлен

System::Drawing::Text::PrivateFontCollection^ privateFont = gcnew System::Drawing::Text::PrivateFontCollection(); 

    IO::Stream^ fontStream = Reflection::Assembly::GetExecutingAssembly()->GetManifestResourceStream("textfont.otf"); 
    array<Byte>^ fontData = gcnew array<Byte>(fontStream->Length); 
    fontStream->Read(fontData, 0, (int)fontStream->Length); 
    fontStream->Close(); 

    pin_ptr<byte> fontAddress = &fontData[0]; 
    privateFont->AddMemoryFont((IntPtr)fontAddress, fontData->Length); 

    this->TextBox_Username->Font = gcnew System::Drawing::Font(safe_cast<System::Drawing::FontFamily^>(privateFont->Families[0]), 9.749999F, System::Drawing::FontStyle::Bold); 
    this->TextBox_Password->Font = gcnew System::Drawing::Font(safe_cast<System::Drawing::FontFamily^>(privateFont->Families[0]), 9.749999F, System::Drawing::FontStyle::Bold); 
+0

Что бы вы ожидали от вас? Шрифт не известен ОС, поэтому он использует систему по умолчанию в качестве резервной копии. – Igor

+0

@Igor Спасибо за быстрый ответ. Есть ли способ загрузить шрифт из ресурса и использовать его без его установки? – SylenZ

+0

Вы используете Qt? Я понятия не имею, как это сделать. – Igor

ответ

Смежные вопросы