CppForm.cpp
上传用户:sz0451
上传日期:2022-07-29
资源大小:256k
文件大小:8k
源码类别:

.net编程

开发平台:

Visual C++

  1. // This is the main project file for VC++ application project 
  2. // generated using an Application Wizard.
  3. #include "stdafx.h"
  4. #using <mscorlib.dll>
  5. #using <System.dll>
  6. #using <System.Windows.Forms.dll>
  7. #using <System.Drawing.dll>
  8. using namespace System;
  9. using namespace System::ComponentModel;
  10. using namespace System::Windows::Forms;
  11. using namespace System::Drawing;
  12. __gc public class CppForm : public Form {
  13. private:
  14.     Button* btn1;
  15.     Button* btn2;
  16.     Label* theLabel;
  17.     GroupBox* gbox;
  18.     RadioButton* rb1;
  19.     RadioButton* rb2;
  20.     RadioButton* rb3;
  21.     ComboBox* combo1;
  22.     TextBox* text1;
  23.     MainMenu* menuBar;
  24.     MenuItem* fileMenu;
  25.     MenuItem* item1;
  26.     MenuItem* item2;
  27.     System::Windows::Forms::ContextMenu* popupMenu;
  28.     MenuItem* item_p1;
  29.     MenuItem* item_p2;
  30.     MenuItem* item_p3;
  31. public:
  32.     CppForm()
  33.     {
  34.         // Set the form caption.
  35.         Text = S"Test Form";
  36.         // Set the border style to 3D fixed.
  37.         FormBorderStyle = FormBorderStyle::Fixed3D;
  38.         // Set up controls on the form.
  39.         Setup_Menu();
  40.         Setup_Context_Menu();
  41.         Setup_Buttons();
  42.         Setup_Label();
  43.         Setup_Group();
  44.         Setup_Combo();
  45.         Setup_Text();
  46.         // Resize the form so it has room for a text box.
  47.         Size = System::Drawing::Size(450, 300);
  48.     }
  49. private:
  50.     void Btn1_Clicked(Object* pSender, EventArgs* pArgs)
  51.     {
  52.         MessageBox::Show(S"It worked!", S"Message...");
  53.     }
  54. private:
  55.     void Btn2_Clicked(Object* pSender, EventArgs* pArgs)
  56.     {
  57.         MessageBox::Show(S"It also worked!", S"Message...");
  58.     }
  59. private:
  60.     void Combo1_SelChanged(Object* pSender, EventArgs* pArgs)
  61.     {
  62.         if (pSender == combo1)
  63.         {
  64.             String* ps = String::Concat(S"New index is ", 
  65.                                         __box(combo1->SelectedIndex)->ToString());
  66.             MessageBox::Show(ps, S"Index Change");
  67.         }
  68.     }
  69. private:
  70.     void MenuItem_Clicked(Object* pSender, EventArgs* pArgs)
  71.     {
  72.         if (pSender == item1)
  73.         {
  74.             // Display the About box.
  75.             MessageBox::Show(S"The About menu item", S"Menu");
  76.         }
  77.         else if (pSender == item2)
  78.         {
  79.             // Exit from the application.
  80.             Application::Exit();
  81.         }
  82.         else
  83.             MessageBox::Show(S"Some other menu item", S"Menu");
  84.     }
  85. private:
  86.     void Radio_Clicked(Object* pSender, EventArgs* pArgs)
  87.     {
  88.         if (pSender == rb1)
  89.             text1->Text = "You have selected the Visual Basic option.";
  90.         else if (pSender == rb2)
  91.             text1->Text = "You have selected the C# option.";
  92.         else if (pSender == rb3)
  93.             text1->Text = "You have selected the C++ option.rnrn"
  94.                         "Here is another line";
  95.     }
  96. private:
  97.     void Setup_Buttons()
  98.     {
  99.         // Add an OK button.
  100.         btn1 = new Button();
  101.         btn1->Text = S"OK";
  102.         btn1->Size = System::Drawing::Size(70, 25);
  103.         btn1->Location = Point(130, 225);
  104.         btn1->Click += new EventHandler(this, &CppForm::Btn1_Clicked);
  105.         Controls->Add(btn1);
  106.         // Add a Cancel button.
  107.         btn2 = new Button();
  108.         btn2->Text = S"Cancel";
  109.         btn2->Size = System::Drawing::Size(70, 25);
  110.         btn2->Location = Point(210, 225);
  111.         btn2->Click += new EventHandler(this, &CppForm::Btn2_Clicked);
  112.         Controls->Add(btn2);
  113.     }
  114. private:
  115.     void Setup_Combo ()
  116.     {
  117.         // Setup combo box.
  118.         combo1 = new ComboBox();
  119.         combo1->DropDownStyle = ComboBoxStyle::DropDownList;
  120.         combo1->Location = Point(20,180);
  121.     
  122.         // Set the width of the combo box based on the preferred width of the text
  123.         // "Intermediate" (the longest string the combo's list will contain), plus
  124.         // twenty pixels for the drop-down button at the right of the combo's text box.
  125.         Label* l1 = new Label();
  126.         l1->Text = S"Intermediate";
  127.         combo1->Width = l1->PreferredWidth + 20;
  128.         
  129.         // Fill the combo box with items and set its default selection.
  130.         combo1->Items->Add(S"Beginner");
  131.         combo1->Items->Add(S"Intermediate");
  132.         combo1->Items->Add(S"Advanced");
  133.         combo1->SelectedIndex = 0;
  134.         // Add the combo box to the form.
  135.         Controls->Add(combo1);
  136.         // Set the event handler for the combo box SelectedIndexChanged event.
  137.         combo1->SelectedIndexChanged += new EventHandler(this, &CppForm::Combo1_SelChanged);
  138.     }
  139. private:
  140.     void Setup_Context_Menu ()
  141.     {
  142.         // Create the context menu.
  143.         popupMenu = new System::Windows::Forms::ContextMenu();
  144.         // Create the items in the context menu.
  145.         item_p1 = new MenuItem("One");
  146.         popupMenu->MenuItems->Add(item_p1);
  147.         item_p2 = new MenuItem("Two");
  148.         popupMenu->MenuItems->Add(item_p2);
  149.         item_p3 = new MenuItem("Three");
  150.         popupMenu->MenuItems->Add(item_p3);
  151.         ContextMenu = popupMenu;
  152.     }
  153. private:
  154.     void Setup_Group ()
  155.     {
  156.         // Create the group box.
  157.         gbox = new GroupBox();
  158.         gbox->Text = S"Language";
  159.         gbox->Location = Point(20, 60);
  160.         // Create the radio buttons.
  161.         rb1 = new RadioButton();
  162.         rb1->Text = S"Visual Basic";
  163.         rb1->Location = Point(10,15);
  164.         rb2 = new RadioButton();
  165.         rb2->Text = S"C#";
  166.         rb2->Location = Point(10,40);
  167.         rb3 = new RadioButton();
  168.         rb3->Text = S"C++";
  169.         rb3->Location = Point(10,65);
  170.         rb3->Checked = true;
  171.         // Add radio buttons to the group box.
  172.         gbox->Controls->Add(rb1);
  173.         gbox->Controls->Add(rb2);
  174.         gbox->Controls->Add(rb3);
  175.         // Add group box to the form.
  176.         Controls->Add(gbox);
  177.         // Connect event handler to the radio button controls.
  178.         rb1->Click += new EventHandler(this, &CppForm::Radio_Clicked);
  179.         rb2->Click += new EventHandler(this, &CppForm::Radio_Clicked);
  180.         rb3->Click += new EventHandler(this, &CppForm::Radio_Clicked);
  181.     }
  182. private:
  183.     void Setup_Label()
  184.     {
  185.         theLabel = new Label();
  186.         theLabel->AutoSize = true;
  187.         theLabel->Text = S"   Acme Consulting, Inc.";
  188.         // Set the font.
  189.         theLabel->Font = new System::Drawing::Font(S"Verdana", 16, FontStyle::Italic);
  190.         theLabel->ForeColor = Color::Black;
  191.         // Set location and size.
  192.         theLabel->Location = Point(20,20);
  193.         theLabel->Size = System::Drawing::Size(theLabel->PreferredWidth, 
  194.                                                theLabel->PreferredHeight);
  195.         // Add an image.
  196.         Bitmap* theImage = new Bitmap("SAVE.BMP");
  197.         theLabel->Image = theImage;
  198.         theLabel->ImageAlign = ContentAlignment::MiddleLeft;
  199.         // Add the label to the form's controls.
  200.         Controls->Add(theLabel);
  201.     }
  202. private:
  203.     void Setup_Menu()
  204.     {
  205.         // Create the main menu bar.
  206.         menuBar = new MainMenu();
  207.         // Create the File menu.
  208.         fileMenu = new MenuItem("&File");
  209.         menuBar->MenuItems->Add(fileMenu);
  210.         // Create menu items and add them.
  211.         item1 = new MenuItem("&About...");
  212.         item2 = new MenuItem("E&xit");
  213.         fileMenu->MenuItems->Add(item1);
  214.         fileMenu->MenuItems->Add(item2);
  215.         // Connect event handler to the menu items.
  216.         item1->Click += new EventHandler(this, &CppForm::MenuItem_Clicked);
  217.         item2->Click += new EventHandler(this, &CppForm::MenuItem_Clicked);
  218.         // Add the main menu to the form.
  219.         Menu = menuBar;
  220.     }
  221. private:
  222.     void Setup_Text()
  223.     {
  224.         text1 = new TextBox();
  225.         text1->Location = Point(250,60);
  226.         text1->Size = System::Drawing::Size(100,150);
  227.         text1->Multiline = true;
  228.         Controls->Add(text1);
  229.     }
  230. };
  231. // This is the entry point for this application
  232. #ifdef _UNICODE
  233. int wmain(void)
  234. #else
  235. int main(void)
  236. #endif
  237. {
  238.     Console::WriteLine(S"Forms Example");
  239.     // Create a form.
  240.     Application::Run(new CppForm());
  241.     return 0;
  242. }