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);
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