Neler yeni
Türkiye'nin En Güncel Forum Sitesi

Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı yada giriş yapmalısınız. Forum üye olmak tamamen ücretsizdir.

C - C++ ile windows üzerinde form açma

ByOnur58

Kayıtlı Üye
MFC Üyesi
  • Üyelik Tarihi
    7 Ocak 2015
  • Mesajlar
    2,113
  • MFC Puanı
    10
  • MFC Seviyesi

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) */
    WNDCLASSEX 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 (WNDCLASSEX);

    /* 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.cbClsExtra = 0;                      /* Extra bayt yok */
    penc.cbWndExtra = 0;                    
    /* Windows'un varsayılan arkaplan rengini kullan */
    wincl.hbrBackground = (HBRUSH) COLOR_BACKGROUND;

    /* */
    if (!RegisterClassEx (&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;
}
 
Üst Alt