FORUMCENTER

SENDE ÜYE OL VE BİZE KATIL BİLGİNİN GÜCÜNE ULAŞ !
 
AnasayfaSSSAramaKayıt OlGiriş yapZiyaretçi Defteri
En son konular
» ForeverAutoHits Türkçe Surf Sitesi / Ödeme Kanıtlı
Salı Ağus. 14, 2018 3:58 pm tarafından metin1

» LotoFun Yatırımsız Sürekli Kazanç
Salı Ağus. 14, 2018 3:56 pm tarafından metin1

» Btcclicks Bitcoin kazandıran Ptc / Ödeme Kanıtlı
Ptsi Kas. 20, 2017 11:10 am tarafından metin1

» Reklam İzleyerek bitcoin kazanma
C.tesi Ağus. 26, 2017 8:56 pm tarafından metin1

» TÜRKİYE CUMHURİYETİ TAPUSU
Perş. Şub. 16, 2017 7:19 am tarafından ORHAN AFACAN

» Bitcofarm ödemeleri
Ptsi Şub. 13, 2017 4:44 pm tarafından metin1

» CetoBeto ödemeleri
Çarş. Kas. 23, 2016 10:51 am tarafından metin1

» Freebitcoin - Faucet game
Salı Kas. 22, 2016 12:13 am tarafından metin1

» Dollarclix payza ödemeleri
Perş. Kas. 17, 2016 1:10 pm tarafından metin1

FORUMCENTER GÜVENLİ İNTERNETİ DESTEKLİYOR
Güvenli İnternet'i Desktekliyoruz
En bakılan konular
Facebook Yorum Attırma HiLesi Yenilenmiştir.
Okul İçin Tavsiyeler
Warcraft 3 + Frozen Throne + Dota (Tek Link Premium Link FuLL SpeeD)
ps2 oyunları indir
TeknoFem Ücretsiz Dersleri
CİLLE 47. BÖLÜM
Facebook Arkadaş Kasma .
Jcow sosyal paylaşım programı
CİLLE`NİN 46. BÖLÜMÜ
okul tavsiyeleri 3 :)
Haftanın en aktif yollayıcıları
Kimler hatta?
Toplam 2 kullanıcı online :: 0 Kayıtlı, 0 Gizli ve 2 Misafir

Yok

Sitede bugüne kadar en çok 706 kişi Perş. Şub. 07, 2013 4:02 pm tarihinde online oldu.
Dost Siteler
Girinti 

Paylaş | 
 

 C++ Windows Pencere İskeleti + Açıklamalar KODU

Aşağa gitmek 
YazarMesaj
afd57
Co-Admin
Co-Admin
avatar

Mesaj Sayısı : 1922
Kayıt tarihi : 11/08/12
Yaş : 22
Nerden : Sinop

MesajKonu: C++ Windows Pencere İskeleti + Açıklamalar KODU   Perş. Ağus. 30, 2012 7:03 am


/*

###############makefile.mak dosyası olarak kaydet#################
Pencere.exe : pencere_iskeleti.obj
ilink32 -aa -V4.0 -c -x -Gn pencere_iskeleti.obj c0w32.obj,Pencere.exe,,import32.lib cw32.lib,,

pencere_iskeleti.obj : pencere_iskeleti.cpp
bcc32 -c -tWM- -w -w-par -w-inl -W -a1 -Od pencere_iskeleti.cpp
################################################

Rem---------------------------derle.bat olarak kaydet-------
make
del *.obj *.res *.tds *.map
pause
Rem-----------------------------------------------------------------------------------------

*Yukarıda isimleri belirtilen iki dosyayi ve kodu pencere_iskeleti.cpp ismi ile ayni dizine kaydedin. Borland c++ 5.5 derleyiciniz
dogru kurulmus olmalı. Dizinde derle.bat dosyasını calistirin ve pencere.exe yi calıstırın....

[Linkleri görebilmek için üye olun veya giriş yapın.]
*/


#include //windowsa özel degisken,sabit ve yapıların tanımlandıgı baslık dosyası

const char g_szClassName[] = "Pencere_sınıfının_ismi_icin";

/* Pencere Fonksiyonu
Windows Programlamada tüm CALLBACK fonksiyonlar biraz garip olabilir ama windows tarafından isletir. Yani siz bu tür
kod bloklarına windows icin yazarsınız bu kodu cagırmamalısınız. Eger coklu islem (Multi proccessing) ortamında
windows sizin programınıza firsat vermek isterse bu örnege ele alırsak WndProc isletir ve eger siz
islem kuyruguna pencere kapatmayı attıysanız (pencerenin X ine bastıysanız) o islem olur.
Belki basınıza gelmistir. Sistem zorlandıgında mouse hareketlerini duymaz
bazende cözülür ve hepsini birden ardı ardına yapar iste bunun arkasında fırsat olmadıgı icin CALLBACK lerin isletilmemesi vardır
*/
LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
switch(msg)
{
case [Linkleri görebilmek için üye olun veya giriş yapın.] mesaj kapama ise
DestroyWindow(hwnd);//pencereyi yok et
break;
case [Linkleri görebilmek için üye olun veya giriş yapın.] yıkımında
PostQuitMessage(0);//garip ama kendi mesaj kuyrugunuza kapatma mesajı gönderiyosunuz. Win32'de islemleri windowsa bırakmak en saglıklı yoldur:)
break;
[Linkleri görebilmek için üye olun veya giriş yapın.] buraya kadar beklenen mesajları case le yazıyoruz eger yorumlamamak istemedigimiz mesajlar varsa
return DefWindowProc(hwnd, msg, wParam, lParam);// bunları windowsun varsayılan kuralları isletsin diyoruz
}
return 0;
}

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow)
{
WNDCLASSEX wc;//WNDCLASSEX->pencere sınıfı icin windows.h dosyasinda önceden tanımlanmıs yapi
//aslında bunu hex rakamlarlada yapmak mümkün ama böyle olması okunurluluk ve kolaylıktır.
HWND hwnd; //HWND->pencere kaydinda dönen isaretci icin
MSG Msg; // MSG-> windowsa özel mesajlajma icin kullanılan yapi degiskeni
//windowsun sistem/program uyumluluk adına elindeki en büyük silah
//sistem icinde dönen bu mesajlardır. cünkü bunlar donanıma ve programların hangi derleyiciyle derlendigine göre değişmez.
// tabi gelismis PE formatınında büyük rolü var (diger adıyla exe formatı)

//Pencere sınıfını kaydetme
wc.cbSize = sizeof(WNDCLASSEX);//yapının boyutu
wc.style = 0;//bu genellikle sıfır ama Pencere cesitleriyle alakalı degil
wc.lpfnWndProc = WndProc;//pencere sınıfının fonksiyonu
wc.cbClsExtra = 0;// windowsta hemen hemen bircok kontrolde yani dügmelerde
wc.cbWndExtra = 0;//metin kutularında ... böyle extra bilgi icin degiskenler tanımlanmıstır.
wc.hInstance = hInstance;//programın calısan kopyasının degiskeni (bellekteki pozisyonu gibi bisey)
wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);//[Alt]+ [Tab] bastıgınızda görecginiz 32*32 ikon
wc.hCursor = LoadCursor(NULL, IDC_ARROW);//mouse bicimi
wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);//Formumuzun arka plan rengi
wc.lpszMenuName = NULL;// sabit Windows menunuz varsa burdan ekliyoruz. (File/....Edit/...)
wc.lpszClassName = g_szClassName;//sınıfımızın ismi
wc.hIconSm = LoadIcon(NULL, IDI_APPLICATION);//asagıda penceremixin bandında görünen 16*16 ikon

if(!RegisterClassEx(&wc))//sınıf kaydı
{
MessageBox(NULL, "Kayıt işlemi yapılamadı!", "Hata!",
MB_ICONEXCLAMATION | MB_OK);
return 0;
}

// Pencere oluşturuluyor
hwnd = CreateWindowEx(
WS_EX_CLIENTEDGE,//genisletilmis pencere stili degiskeni ->iceriye dogru giren kenarlar
g_szClassName,//ismi
"Pencerem",//pencerenin baslıgı
WS_OVERLAPPEDWINDOW,//windows stili cesitler icin win32 API reference ına bakın.
CW_USEDEFAULT, CW_USEDEFAULT, 240, 120,//pencerenin koordinat ve büyüklük rakamlar büyüklük varsayıla degerler masa üstünde posizyonu


NULL, NULL, hInstance, NULL);//ana (üst) pencerinin isaretcisi, menü isaretcisi, programımızın isaretcisi, pencere tanımlama yapısına isaretci
/*
Windowsta tüm gördügünüz pencereler ve üzerindeki kontroller dikey olarak birbirlerine
baglanır. Eger pencerinin üstünde dügme varsa o ana pencerinin altındadır ve dugme
ana (üst) pencerinin isaretcisi (dügmede bu deger null olmaz) ile baglanır. Aslında kontrollerde (liste,dügme...)
farklı görünüs ve islevleri olan pencerelerdir. örnegimizde deger null dur. cünkü bu bizim ana
penceremizdir . Menumuz olmadıgı icin oda null dur. son isaretcide pencere yaratılırken winmaine gönderilen ek bilgiler
icin kullanılır ama cogunlukla gereksizdir. aynı isi program icindende farklı sekilde yapabilirsiniz.
*/

if(hwnd == NULL)// dönen null'sa problemimiz var.
{
MessageBox(NULL, "Pencere oluşturma başarasız!", "Hata!",
MB_ICONEXCLAMATION | MB_OK);
return 0;
}

ShowWindow(hwnd, nCmdShow);//pencere sahnede
UpdateWindow(hwnd);//emin olmak icin bir kere tazeleme

// Mesaj döngüsü
while(GetMessage(&Msg, NULL, 0, 0) > 0)//artık program ekranda biyerlerde ve eger belirtiyseniz
//formun üstüne yada dügmelere tıklanmayı beklemek icin mesaj döngüsüne giriyor. burda WndProc cagrılmadıgına dikkat edin
{
TranslateMessage(&Msg);
DispatchMessage(&Msg);
}
return Msg.wParam;
Sayfa başına dön Aşağa gitmek
http://www.afdprogramlama.tr.gg
 
C++ Windows Pencere İskeleti + Açıklamalar KODU
Sayfa başına dön 
1 sayfadaki 1 sayfası

Bu forumun müsaadesi var:Bu forumdaki mesajlara cevap veremezsiniz
FORUMCENTER :: KOD BANKASI :: c++ kodları-
Buraya geçin: