2016-05-02 11 views
0

私はメモリ(埋め込みリソース)からフォントを追加し、それを私のWindowsフォーム(C++/cli)アプリケーションに使用しようとしました...コード指定されたフォントがコンピュータにインストールされていない場合、テキストボックスは自分のカスタムフォントの代わりにデフォルトのフォントを使用しています。 CompatibleTextRenderingDefaultがtrueに設定されています。 PrivateFontCollectionにフォントをロードするために利用できるSystem :: Drawing :: Text ::フォントがインストールされていないときに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

あなたは何が起こると思いますか?フォントはOSに認識されないため、フォールバックとしてデフォルトのシステム1を使用しています。 – Igor

+0

@Igor速い返信をありがとう。リソースからフォントを読み込み、インストールせずに使用する方法はありますか? – SylenZ

+0

Qtを使用しますか?私はそこでそれをどうやって行うのか分かりません。 – Igor

答えて

関連する問題