Mega Code Archive

 
Categories / Visual C++ .NET / GUI Form
 

Rich Text area demo

using namespace System;   using namespace System::ComponentModel;   using namespace System::Collections;   using namespace System::Windows::Forms;   using namespace System::Data;   using namespace System::Drawing;   public ref class Form1 : public System::Windows::Forms::Form   {   public:     Form1(void)     {       InitializeComponent();             BuildLabels();     }   private:         System::Windows::Forms::RichTextBox^  rtBox;         array<System::Windows::Forms::Label^>^ labels;      void InitializeComponent(void)     {             this->rtBox = (gcnew System::Windows::Forms::RichTextBox());             this->SuspendLayout();             //              // rtBox             //              this->rtBox->Anchor =                  static_cast<System::Windows::Forms::AnchorStyles>                 ((((System::Windows::Forms::AnchorStyles::Top                  | System::Windows::Forms::AnchorStyles::Bottom)                  | System::Windows::Forms::AnchorStyles::Left)                  | System::Windows::Forms::AnchorStyles::Right));             this->rtBox->Location = System::Drawing::Point(0, 32);             this->rtBox->Name = L"rtBox";             this->rtBox->RightMargin = 900;             this->rtBox->ScrollBars =                  System::Windows::Forms::RichTextBoxScrollBars::ForcedVertical;             this->rtBox->ShowSelectionMargin = true;             this->rtBox->Size = System::Drawing::Size(950, 488);             this->rtBox->TabIndex = 1;             this->rtBox->Text = L"";             this->rtBox->KeyDown +=                  gcnew System::Windows::Forms::KeyEventHandler(this,                                                         &Form1::rtBox_KeyDown);             //              // Form1             //              this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);             this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;             this->ClientSize = System::Drawing::Size(950, 520);             this->Controls->Add(this->rtBox);             this->Name = L"Form1";             this->Text = L"(Very Simple Rich Text Editor)";             this->ResumeLayout(false);     }         void BuildLabels()         {             array<String^>^ rtLabel = gcnew array<String^> {                 L"F1-Bold",   L"F2-Italics", L"F3-Underline",                 L"F4-Normal", L"F5-Red",     L"F6-Blue",                 L"F7-Green",  L"F8-Black",   L"F9-Load",                     L"F10-Save"             };             labels = gcnew array<System::Windows::Forms::Label^>(10);             // Build the labels             for (int i = 0; i < labels->Length; i++)             {                 labels[i] = gcnew Label();                 labels[i]->BackColor = SystemColors::ControlDark;                  labels[i]->BorderStyle = BorderStyle::FixedSingle;                  labels[i]->Location = Drawing::Point(5+(95*i), 8);                  labels[i]->Size = Drawing::Size(85, 16);                  labels[i]->Text = rtLabel[i];                  labels[i]->TextAlign = ContentAlignment::MiddleCenter;              }             // Place labels on the Form             Controls->AddRange(labels);         }         System::Void rtBox_KeyDown(System::Object^ sender,                                     System::Windows::Forms::KeyEventArgs^ e)         {             try             {                 if (rtBox->SelectionLength > 0)                  {                     // Change selected text style                     FontStyle fs;                     switch (e->KeyCode)                      {                         case Keys::F1:                              fs = FontStyle::Bold;                                                 break;                          case Keys::F2:                              fs = FontStyle::Italic;                                                break;                          case Keys::F3:                              fs = FontStyle::Underline;                             break;                          case Keys::F4:                              fs = FontStyle::Regular;                             break;                      // Change selected text color                         case Keys::F5:                              rtBox->SelectionColor = Color::Red;                              break;                          case Keys::F6:                              rtBox->SelectionColor = Color::Blue;                              break;                          case Keys::F7:                              rtBox->SelectionColor = Color::Green;                              break;                          case Keys::F8:                              rtBox->SelectionColor = Color::Black;                              break;                      }                     // Do the actual change of the selected text style                     if (e->KeyCode >= Keys::F1 && e->KeyCode <= Keys::F4)                     {                         rtBox->SelectionFont = gcnew Drawing::Font(                              rtBox->SelectionFont->FontFamily,                              rtBox->SelectionFont->Size,                              fs                          );                     }                 }                 // Load hard coded Chapter01.rtf file                 else if (e->KeyCode == Keys::F9)                 {                     rtBox->LoadFile("Chapter01.rtf");                 }                 // Save hard coded Chapter01.rtf file                 else if (e->KeyCode == Keys::F10)                 {                     rtBox->SaveFile("Chapter01.rtf",                                      RichTextBoxStreamType::RichText);                 }             }             // Capture any blowups             catch (Exception ^e)             {                 MessageBox::Show(String::Format("Error: {0}", e->Message));             }         }   }; [STAThreadAttribute] int main(array<System::String ^> ^args) {   Application::Run(gcnew Form1());   return 0; }