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

Kurtbeyi

Misafir Editör
Katılım
5 Şubat 2022
Mesajlar
501
Tepkime puanı
44
Konum
istanbul
Cinsiyet
  1. Bay
Takım
Fenerbahçe
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;
}
 

Benzer konular

İçerik sağlayıcı "paylaşım" sitelerinden biri olan Harbimekan.Com Forum, Eğlence ve Güncel Paylaşım Platformu Adresimizde 5651 Sayılı Kanun’un 8. Maddesine ve T.C.K’nın 125. Maddesine göre TÜM ÜYELERİMİZ yaptıkları paylaşımlardan sorumludur. Harbimekan.Com sitesindeki konular yada mesajlar hakkında yapılacak tüm hukuksal Şikayetler için info@harbimekan.com yada iletişim sayfası üzerinden iletişime geçilmesi halinde ilgili kanunlar ve yönetmelikler çerçevesinde en geç 3 Gün (72 Saat) içerisinde Forum yönetimi olarak tarafımızdan gereken işlemler yapılacaktır.

Bu Site, Bilim ve Sağlık Haber Ajansı Üyesidir.

Yığıntı - 8kez - kaynak mağazam - Uğur Ağdaş