Fonts Demo : Font « 2D « Visual C++ .NET

Home
Visual C++ .NET
1.2D
2.Class
3.Collections
4.Data Type
5.Database ADO.net
6.Delegate
7.Development
8.File Directory
9.Function
10.Generics
11.GUI Form
12.Language Basics
13.Network
14.Reflection
15.Security
16.Statement
17.Structure
18.Thread
19.XML
C / ANSI-C
C Tutorial
C++
C++ Tutorial
Visual C++ .NET » 2D » Font 
Fonts Demo
 

[STAThreadAttribute]
int main(array<System::String ^> ^args)
{
  Application::Run(gcnew Form1());
  return 0;
}

  using namespace System;
  using namespace System::ComponentModel;
  using namespace System::Collections;
  using namespace System::Windows::Forms;
  using namespace System::Data;
  using namespace System::Drawing;
    using namespace System::Drawing::Text;

  public ref class Form1 : public System::Windows::Forms::Form
  {
  public:
    Form1(void)
    {
      InitializeComponent();

            fonts = gcnew array<Drawing::Font^>(10);
            fontstr = gcnew array<String^>(10);

            // Used to generate random fonts
            array<float>^ sizes = gcnew array<float
                10.012.516.0 
            };
            
            array<FontStyle>^ fontstyles = gcnew array<FontStyle> 
                FontStyle::Regular, FontStyle::Bold, 
                FontStyle::Italic,
            (FontStyle)(FontStyle::Underline|FontStyle::Bold|FontStyle::Italic)
            };

            array<GraphicsUnit>^ units = gcnew array<GraphicsUnit> 
                GraphicsUnit::Point, GraphicsUnit::Pixel 
            }

            // Get all fonts on computer
            InstalledFontCollection ^availFonts = 
                gcnew InstalledFontCollection();
            

            array<FontFamily^>^ fontfamilies = availFonts->Families;

            Random ^rand = gcnew Random();
            int ff, s, fs, u;
            
            for (int i = 0; i < fonts->Length; i++)
            {
                s  = rand->Next(0,3);
                fs = rand->Next(0,3);
                u  = rand->Next(0,2);

                // Not all fonts support every style
                do {
                    ff = rand->Next(0,fontfamilies->Length);
                }
                while (!fontfamilies[ff]->IsStyleAvailable(
                    (FontStyle)fontstyles[fs]));
                
                // Display string of font
                fontstr[i= String::Format("{0} {1} {2}"
                    fontfamilies[ff]->Name,
                    sizes[s],
                    String::Concat(fontstyles[fs]" "
                                   units[u]));

                // Create the font
                fonts[i= gcnew Drawing::Font(fontfamilies[ff], sizes[s]
                                            (FontStyle)fontstyles[fs],
                                            (GraphicsUnit)units[u]);
            }
    }

        array<Drawing::Font^>^ fonts;
        array<String^>^ fontstr;

    void InitializeComponent(void)
    {
            this->SuspendLayout();
            this->AutoScaleDimensions = System::Drawing::SizeF(613);
            this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
            this->ClientSize = System::Drawing::Size(292273);
            this->Name = L"Form1";
            this->Text = L"Many Fonts";
            this->Paint += 
                gcnew System::Windows::Forms::PaintEventHandler(this, 
                                                         &Form1::Form1_Paint);
            this->ResumeLayout(false);
        }

        System::Void Form1_Paint(System::Object^ sender, 
                                 System::Windows::Forms::PaintEventArgs^ e)
        {
            float lineloc = 0;
            for (int i = 0; i < fonts->Length; i++)
            {
                // Display font
                e->Graphics->DrawString(fontstr[i], fonts[i], Brushes::Black, 
                    10, lineloc);

                // Calculate the top of the next line
                lineloc += fonts[i]->Height;
            }
        }
  };

   
  
Related examples in the same category
www.java2java.com | Contact Us
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.