Konuyu görüntüle
IUCODERS FORUM > Duyurular > Okul ile ilgili > sistem odevi hakkında
Yazar
humam


avatar

Kayıt: 16.04.2007
06.01.2008-13:58 #33774
Messagbox dan hangi tuşa basıldığını kontul etmek istiyorum. evet ya da iptal kısmına basıldığını nasıl kontrul ederim.. ben ornekte yapmaya callıştım ama tanımıyor..

if (MessageBox::Show(" ","",MessageBoxButtons::OKCancel),
MessageBoxIcon::Question) == DialogResult::OK)

c++ 2008 de yazıyorum kabul etmiyor. dialogresult:: diyince sadece get ve set çıkıyor...


bilen varsa yardım ederse sevinirim..







HAYAT BU!!!
Yazar
audtou


avatar
malatya
Kayıt: 31.08.2006
06.01.2008-14:55 #33775
MessageBox() fonksiyonu geri donus degeri olarak integer gönderir.Bu geri dönüş degeri de hangi tuşa basılarak MessageBox'un kapatıldıgını gösterir.Geri dönüş degerleri şunlar olabilir:
IDABORT, IDCANCEL, IDIGNORE, IDNO, IDYES, IDOK, IDRETRY

kodu şöyle yazarsan:

int i = MessageBox ( NULL, szFileName, "baslik", MB_YESNOCANCEL | MB_ICONASTERISK ) ;
if ( i == IDYES)
       ......
else if( i == IDCANCEL)
       ........


gereken kontrolleri yapabilirsin





bitiyo lan!
Yazar
yasmin


avatar
istanbul
Kayıt: 14.03.2006
06.01.2008-19:06 #33792
arkadaşlar
hani iki tane menu varya dosya ve yardım. bu yardım menusune basildiginda olusan submenu de hangisinin seçildiğini nasıl anlıcam ben soyle bişey denedim
case ID_STUFF_GO : dan sonra iki tane dialogbox oluşturdum. ve bu dialogbox ın herbirinin MAKEINTRESOURCE kısmına IDD_OGRENCI ve IDD_AD yazdım ve resource.h da define yaptım. bunları yardım menusunun hangi kısmının seçildiğini bulmak icin kullanmaya calıştım ama olmadı
bunları nasıl kullanıcam yardim edebilirmisinzpraying





Yazar
aliprinter


avatar
İstanbul
Kayıt: 12.02.2006
06.01.2008-19:42 #33796
yasmin yazdi
 
... yardim edebilirmisinzpraying


Çalışmayan kod parçasını ya da hata varsa hatayı yazarsan problem daha iyi anlaşılabilir. Örnek olarak WndProc CALLBACK fonksiyonu içinden hangi menüye tıklandığı parametresini aşağıdaki gibi yakalayabilirsin. Anlattığına göre yaptığın şeyler doğru ama muhtemelen karşılaştırma yaparken wParam yerine Message ile karşılaştırdın.

switch(Message)
{
     case WM_COMMAND:
          switch(LOWORD(wParam))
          {
               case ID_STUFF_GO:
               {
                    int ret = DialogBox(GetModuleHandle(NULL),
                    MAKEINTRESOURCE(IDD_OGRENCI), hwnd, OgrenciDialogProc);
                    ...
                    ...
                    break;
               }
          }
          break;
}


OgrenciDialogProc için yine bir CALLBACK oluşturmalısın.





Yazar
iemre


avatar
Anadolu
Kayıt: 26.05.2007
06.01.2008-21:38 #33807
yasmin yazdi
 
arkadaşlar
hani iki tane menu varya dosya ve yardım. bu yardım menusune basildiginda olusan submenu de hangisinin seçildiğini nasıl anlıcam ben soyle bişey denedim
case ID_STUFF_GO : dan sonra iki tane dialogbox oluşturdum. ve bu dialogbox ın herbirinin MAKEINTRESOURCE kısmına IDD_OGRENCI ve IDD_AD yazdım ve resource.h da define yaptım. bunları yardım menusunun hangi kısmının seçildiğini bulmak icin kullanmaya calıştım ama olmadı
bunları nasıl kullanıcam yardim edebilirmisinzpraying


Ben böyle yaptım çalışıyor.

LRESULT CALLBACK WndProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam)
{
	switch(Message)
	{
		case WM_COMMAND:
			switch(LOWORD(wParam))
			{
				case ID_FILE_EXIT:
					PostMessage(hwnd, WM_CLOSE, 0, 0);
				break;
				case ID_HELP_ABOUT:
				{
					int ret = DialogBox(GetModuleHandle(NULL), 
						MAKEINTRESOURCE(IDD_ABOUT), hwnd, AboutDlgProc);
					if(ret == IDOK){
						MessageBox(hwnd, "Öğrenci Numarası Diyaloğundan Tamam Tuşuna Basarak Çıktınız.", "Bilgilendirme",
							MB_OK | MB_ICONINFORMATION);
					}
					else if(ret == IDCANCEL){
						MessageBox(hwnd, "Öğrenci Numarası Diyaloğundan İptal Tuşuna Basarak Çıktınız.", "Bilgilendirme",
							MB_OK | MB_ICONINFORMATION);
					}
					else if(ret == -1){
						MessageBox(hwnd, "Hata!", "Hata",
							MB_OK | MB_ICONINFORMATION);
					}
				}
				break;
					case ID_HELP_AD:
				{
					int ret = DialogBox(GetModuleHandle(NULL), 
						MAKEINTRESOURCE(IDD_AD), hwnd, AboutDlgProc);
					if(ret == IDOK){
						MessageBox(hwnd, "Ad Soyad Diyaloğundan Tamam Tuşuna Basarak Çıktınız.", "Bilgilendirme",
							MB_OK | MB_ICONINFORMATION);
					}
					else if(ret == IDCANCEL){
						MessageBox(hwnd, "Ad Soyad Diyaloğundan İptal Tuşuna Basarak Çıktınız.", "Bilgilendirme",
							MB_OK | MB_ICONINFORMATION);
					}
					else if(ret == -1){
						MessageBox(hwnd, "Hata!", "Hata",
							MB_OK | MB_ICONINFORMATION);
					}
				}
				break;
			}
		break;
		case WM_CLOSE:
			DestroyWindow(hwnd);
		break;
		case WM_DESTROY:
			PostQuitMessage(0);
		break;
		default:
			return DefWindowProc(hwnd, Message, wParam, lParam);
	}
	return 0;
}






More than one
Yazar
humam


avatar

Kayıt: 16.04.2007
06.01.2008-21:41 #33808
audtou yazdi
 
MessageBox() fonksiyonu geri donus degeri olarak integer gönderir.Bu geri dönüş degeri de hangi tuşa basılarak MessageBox'un kapatıldıgını gösterir.Geri dönüş degerleri şunlar olabilir:
IDABORT, IDCANCEL, IDIGNORE, IDNO, IDYES, IDOK, IDRETRY

kodu şöyle yazarsan:

int i = MessageBox ( NULL, szFileName, "baslik", MB_YESNOCANCEL | MB_ICONASTERISK ) ;
if ( i == IDYES)
       ......
else if( i == IDCANCEL)
       ........


gereken kontrolleri yapabilirsin



sağ ol ama bu kısım visual c++ 2008 için geçerli değil ki.





HAYAT BU!!!
Yazar
yasmin


avatar
istanbul
Kayıt: 14.03.2006
06.01.2008-22:06 #33810
aliprinter yazdi
 

OgrenciDialogProc için yine bir CALLBACK oluşturmalısın.


hatamı anladım olusturdugum submenu de iki ksımada ID_STUFF_GO yazmısım ve bu yüzden cagıramadim

teşekkür ederim arkadaşlar





Del.icio.us
Digg
Facebook
Furl
Google
Blink
Simpy
Spurl
Y! MyWeb