C - C++ ile Windows Üzerinde Form Açma İşlemi Nasıl Yapılır?

sametuzun
Mesajlar: 507
Kayıt: Prş Haz 09, 2016 12:48 am

C - C++ ile Windows Üzerinde Form Açma İşlemi Nasıl Yapılır?

Mesajgönderen sametuzun » Çrş Haz 29, 2016 8:21 pm

Merhaba, şimdi c - c++ ile form oluşturmayı, biçimlendirip ekranda göstermeyi ve event kullanımına bakacağız.


Kod:
#include <windows.h>
LRESULT CALLBACK WindowProcedure (HWND, UINT, WPARAM, LPARAM);


char szClassname[ ] = "YunApp";
int WINAPI WinMain (HINSTANCE hThisInstance,
HINSTANCE hPrevInstance,
LPSTR lpszArgument,
int nFunsterStil)


{
HWND hwnd; /* Penceremizin ID numarası (Long tipinde) */
MSG messages; /* Eventler (messages) */
WNDCLAS+++ penc; /* Pencere sınıfı */


/* Pencere tanımları */
penc.hInstance = hThisInstance;
penc.lpszClassName = szClassName;
penc.lpfnWndProc = WindowProcedure; /* Bu fonksiyonu windows çağırır */
penc.style = CS_DBLCLKS; /* Çift tıklamayı yakala */
penc.cbSize = sizeof (WNDCLAS+++);


/* Varsayılan ikon ve kursoru kullan */
penc.hIcon = LoadIcon (NULL, IDI_APPLICATION);
penc.hIconSm = LoadIcon (NULL, IDI_APPLICATION);
penc.hCursor = LoadCursor (NULL, IDC_ARROW);
penc.lpszMenuName = NULL; /* No menu */
penc.cbCl+++tra = 0; /* Extra bayt yok */
penc.cbWndExtra = 0;
/* Windows'un varsayılan arkaplan rengini kullan */
wincl.hbrBackground = (HBRUSH) COLOR_BACKGROUND;


/* */
if (!RegisterClas+++ (&wincl))
return 0;


/* Sınıf tanımlı ise formu oluşturuyoruz*/
hwnd = CreateWindowEx (
0,
szClassName, /* Sınıf adı */
"Uygulama 1", /* Başlık */
WS_OVERLAPPEDWINDOW, /* varsayılan pencere */
CW_USEDEFAULT, /* pozisyonu windows belirlesin */
CW_USEDEFAULT, /* nerede görüneceğini windows belirlesin */
544, /* Genişlik */
375, /* Yükseklik */
HWND_DESKTOP, /* Masaüstünde açılan pencere */
NULL, /* Menü yok */
hThisInstance, /* Olay tutamacı */
NULL /* Pencere oluşturma verisi yok */
);
/* Ekranda göster */
ShowWindow (hwnd, nFunsterStil);


/* Mesaj döngüsünü başlat. GetMessage() değeri 0 dönene kadar çalıştır */
while (GetMessage (&messages, NULL, 0, 0))
{
/* Karakter mesajlarını görsel anahtar mesajlara çevir */
TranslateMessage(&messages);
/* WindowProcedure fonksiyonuna mesajı gönder */
DispatchMessage(&messages);
}


/* PostQuitMessage() 0 döndürüldüğünde form kapatılır */
return messages.wParam;
}




/* Bu fonksiyon windows tarafından çağırılacakDispatchMessage() */


LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
switch (message) /* olay tutamacı */
{
case WM_DESTROY:
PostQuitMessage (0); /* WM_QUIT mesaj kuyruğuna gönder */
break;
case WM_RBUTTONDOWN:
MessageBox(hwnd, "Sağ tık", "bilgi", MB_OK);
break;
default: /* diğer mesajlar için */
return DefWindowProc (hwnd, message, wParam, lParam);
}


return 0;
}

“C++” sayfasına dön

Kimler çevrimiçi

Bu forumu görüntüleyen kullanıcılar: Hiç bir kayıtlı kullanıcı yok ve 1 misafir