Okienka dialogowe

Każdy program musi posiadać okna dialogowe, które będą informować użytkownika o postępach pracy, albo pytać o zapis lub otworzenie plików. Do tego celu można wykorzystać klasę MessageBox, która wyświetla takie okienka za pomocą statycznej metody Show(). Używając tą metodę z odpowiednim parametrem można dostosować okno do naszych celów. Oczywiście najlepiej wyjaśnić to na przykładzie:

Chcemy napisać program który po naciśnięciu przycisku "zapytaj" zada nam pytanie i w zależność od tego co wybierzemy wyświetli w komponencie textBox różne odpowiedzi. Wystarczy wrzucić na naszą formę button i textBox, a następnie stworzyć procedurkę odpowiedzialną za wciśniecie przycisku wpisując tam coś takiego:

private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
 System::Windows::Forms::DialogResult odp = MessageBox::Show("Czy lubisz kotki?","Wybierz jedną z wilu opcji:",MessageBoxButtons::YesNoCancel,MessageBoxIcon::Question);
 switch (odp){
 case System::Windows::Forms::DialogResult::Yes:
 textBox1->AppendText("Wybrałeś tak, a mogłeś nie"+ System::Environment::NewLine);
 break;
 case System::Windows::Forms::DialogResult::No:
 textBox1->AppendText("Wybrałeś nie i się nie dziwie"+ System::Environment::NewLine);
 break;
 case System::Windows::Forms::DialogResult::Cancel:
 textBox1->AppendText("Wybrałeś anuluj, a mogłeś wybrać nie"+ System::Environment::NewLine);
 break;
 }

Po wpisaniu tego kodu powinniśmy dostać taki rezultat:

A teraz objaśnienie:

Zaczynamy od początku.

System::Windows::Forms::DialogResult odp = MessageBox::Show("Czy lubisz kotki?","Wybierz jedną z wilu opcji:",MessageBoxButtons::YesNoCancel,MessageBoxIcon::Question);

Ta linijka kodu deklaruje zmienną o typie  System::Windows::Forms::DialogResult, którą nazywamy "odp". Przypisujemy jej okno dialogowe z odpowiednim pytaniem oraz deklarujemy, aby pokazała się ikona znaku zapytania MessageBoxIcon::Question. Można tu użyć także MessageBoxIcon::Information oraz MessageBoxIcon::Excalamation w zależności od potrzeb. W tej linijce zadeklarowaliśmy 3 przyciski wpisując metodę MessageBoxButtons::YesNoCancel można także użyć: MessageBoxButtons::OK, AbortRetryIgnore, OKCancel, YesNo. W zależności od potrzeb.

Dalej jest case, czyli taki if dla wielu możliwości, który w zależności od naciśniętego przycisku wypisuje jakiś teks i przenosi do następnej linii.