2 min read

C++ ile Mesaj Kutusu Göstermek

C++ kodlaması yaparken, bir işlem sonucu veya bir soruya evet / hayır şeklinde cevap verdirmek istediğimizde ekrana uyarı mesajı ya da hata mesajı belirtmek isteyebiliriz. C++ kodlarken herhangi bir görsel editöre sahip olmadığımızı düşürsek, bu yazıda ayrıntılı bir şekilde mesaj kutusu mantığını kavrayabiliriz.

Mesaj kutusu göstermek için gerekli olan kodun yapısı şu şekilde, bu kodu aşağıda inceleyeceğiz.

MessageBox(0, mesajiniz, mesajbasligi, butonlar | ikon);

Öncelikle projemize windows.h kütüphanemizi eklememiz gerekiyor. Mesaj Kutusunu göstermek için bu kütüphaneyi kullanmak zorundayız. Ardından main içinde mesaj kutumuzu düzenlemeye başlıyoruz. Öncelikle bir char oluşturup bu char a hata mesajımızı yazıyoruz. Char kullanmadan da yapabilirdik fakat char ile yapmamız  kodları ekranda daha iyi görmemizi sağlar. Şu şekilde bir kod yazıyoruz.

char *msg; // Hata mesajimiz bir char oldugu icin boyle tanimladik
	    msg = "Bir hata mesajı n Alt satır"; // Hata mesajimiz

Mesajımızı belirlediğimize göre şimdi mesaj kutumuzu oluşturabiliriz, yazdığımız ilk kodda mesaj kutusunun mantığını söylemiştik. Şimdi oluşturmak istediğim mesaj kutusunu sözlü olarak belirteyim.

 Başlığı ‘Mesaj Başlığı’ olan, Tamam ve İptal tuşlarını içeren kırmızı x ikonu görünen bir kutu oluşturalım.

Bu kutuyu oluşturmak için şunları bilmek gerekiyor;  Tamam ve İptal tuşu için MB_OKCANCEL , kırmızı x ikonu içinse MB_ICONHAND kodunu kullanmamız gerekiyor. Gerekli kodları yazının sonralarına doğru bulabilirsiniz.

MessageBox(0, msg, "Mesaj Başlığı", MB_OKCANCEL | MB_ICONHAND);

Şimdi, kullanıcının burada hangi tuşa tıkladığını öğrenmemiz gerekiyor, bunu Switch-Case ile yapabiliyoruz. Kullanıcının tıkladığı butona göre farklı bir mesaj döndürebiliriz. Bunu yapmak için öncelikle MessageBox oluşturduğumuz satırı bir integer değere atamamız gerekiyor, çünkü switch fonksiyonu integer bir değerle çalışabiliyor.

 const int click = MessageBox(0, msg, "Mesaj Başlığı", MB_OKCANCEL | MB_ICONHAND);

İsmi click olan sabit bir integer değeri oluşturduk ve bu değeri MessageBox ile eşitledik, şimdi switch case yapımızı yazalım. switch(integerismi) olarak başlayacağız, case isimlerimiz ise IDButonAdı şeklinde olacak.

switch (click) // click integerine gore yapalim
		{
		case IDOK: // Tiklanan buton OK ise
		    //Yapılacak islemler
		    break;
		case IDCANCEL: // Tiklanan buton Cancel ise
		    //Yapılacak islemler
		    break;
		}

Böylece kodumuzu bitiriyoruz. Aşağıda ikon ve buton tiplerini görebilirsiniz. Ayrıca yazının sonunda örnek bir program bulunmaktadır. Eğer yapamadığınız veya yanlış olan bir yer varsa yorum kısmına yazabilirsiniz.

İkon Tipleri

Buton tipleri

Kaynak Kodu

/*
	Name: Message Box C++
	Author: Alperen Ozlu
	Date: 17.12.13 11:39
*/

//Kutuphaneler
#include <iostream>
#include <windows.h> 

using namespace std;

int main()
{
	    char *msg; // Hata mesajimiz bir char oldugu icin boyle tanimladik
	    msg = "Bir hata mesajı n Alt satır"; // Hata mesajimiz
        const int click = MessageBox(0, msg, "Mesaj Başlığı", MB_OKCANCEL | MB_ICONHAND);
        // switch case yapabilmek icin MessageBox degerini bir integer olarak atadik.
        // MessageBox(*,mesajcharadi,"Mesaj Basligi",Butonlar,Mesajkutusuikonu)

	switch (click) // click integerine gore yapalim
		{
		case IDOK: // Tiklanan buton OK ise
		    cout<<"Tamam'a bastiniz"<<endl;
		    break;
		case IDCANCEL: // Tiklanan buton Cancel ise
		    cout<<"İptal'e bastiniz"<<endl;
		    break;
		}

		return 0;
		// system("pause");
}

Referans  : http://www.functionx.com/win32/Lesson04.htm