Etusivu

C/C++ teoria
Ohjelmointitesti
C-kielen alkeet
C++-alkeet
C++-taulukkoja
Koodausohjeita
C++ tehtävät
C++ perusteet
C++ vaikeat
C++ syventävät
Kertaustehtäviä
Win32-teoria
Ohjelmointitesti
Ohjelmointimalli
Ikkunaluokat
Lyhyt pohja
Laajennettu pohja
Win32-tehtävät
Win32 perusteet
Win32 vaikeat
Win32 syventävät
MFC-teoria
Kontrolliluokat
MFC-luokat
Lyhyt pohja
Laajennettu pohja
MFC-tehtävät
MFC perusteet
MFC vaikeat
MFC syventävät
Java-teoria
Javan alkeet
Java pohja
Java-tehtävät
Java konsoli
Java perusteet
Java vaikeat
Java syventävät
 
Lyhyt pohja
Kaikkein yksinkertaisin ja lyhyin C/Win32 API -ohjelma joka vielä toimii:

 

#include <windows.h> // otsikkotiedosto

LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ; // ikkunaproseduurifunktion esittely

int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow)
{
    MSG msg ; // sanomastrukstuurimuuttujan esittely
    WNDCLASSEX wndclass ; // ikkunan luokkastruktuurimuuttujan esittely

    wndclass.cbSize = sizeof (wndclass) ; // struktuurin koko
    wndclass.style = CS_HREDRAW | CS_VREDRAW ; // ikkunan tyyli
    wndclass.lpfnWndProc = WndProc ; // ikkunaproseduurin nimi
    wndclass.cbClsExtra = 0 ; // ikkunan luokan sisältä ohjelman...
    wndclass.cbWndExtra = 0 ; // ...omaan käyttöön varattua tilaa
    wndclass.hInstance = hInstance ; // ohjelman ilmentymän kahva
    wndclass.hIcon = LoadIcon (NULL, IDI_APPLICATION) ; // suuri ikoni
    wndclass.hCursor = LoadCursor (NULL, IDC_ARROW) ; // kursori
    wndclass.hbrBackground = (HBRUSH) COLOR_WINDOW ; // taustaväri
    wndclass.lpszMenuName = NULL ; // valikon kahva
    wndclass.lpszClassName = "OmaLuokka" ; // ikkunan luokan nimi
    wndclass.hIconSm = LoadIcon (NULL, IDI_APPLICATION) ; // pieni ikoni

    RegisterClassEx (&wndclass) ; // ikkunan luokan rekisteröinti

    HWND hwnd = CreateWindow ("OmaLuokka", // ikkunan luokan nimi
        "Päivää maailma!", // ikkunan otsikko
        WS_OVERLAPPEDWINDOW, // ikkunan tyyli
        CW_USEDEFAULT, // x-positio aluksi
        CW_USEDEFAULT, // y-positio aluksi
        CW_USEDEFAULT, // leveys aluksi
        CW_USEDEFAULT, // korkeus aluksi
        NULL, // emoikkunan kahva
        NULL, // ikkunan valikon kahva
        hInstance, // ohjelman ilmentymän kahva
        NULL) ; // luontiparametrit

    ShowWindow (hwnd, iCmdShow) ; // ikkunan piirto

    while (GetMessage (&msg, NULL, 0, 0) == TRUE) // sanomasilmukka
    {
        TranslateMessage (&msg) ; // sanomien käsittely ja...
        DispatchMessage (&msg) ; // ...ikkunaproseduurin kutsu
    }

    return msg.wParam ; // käyttöjärjestelmälle palautuva arvo
}

LRESULT CALLBACK WndProc (HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam) // ikkunaproseduuri
{
    switch (iMsg) // sanomien käsittelyrakenne
    {
    case WM_DESTROY: // lopetussanoman sanomakäsittelijä  
        PostQuitMessage (0); // lopetuksen vahvistus
        return 0;
    }

    return DefWindowProc (hwnd, iMsg, wParam, lParam) ; // sanomien oletuskäsittely
}

 

Tulos:

Tämän jälkeen lomakkeelle voi tehdä seuraavaa:

  • Liikuttaa otsikkopalkista
  • Suurentaa ja pienentää reunoista
  • Maksimoida ja minimoida oikean yläkulman napeilla ja tuplanapauttamalla otsikkopalkkia
  • Sulkea oikean yläkulman napilla
  • Avata syteemivalikon vasemmasta yläkulmasta ja suurentaa, pienentää ja sulkea sieltä

Ohjelman rakenne:

Windows.h otsikkotiedoston lisäys
Ikkunaproseduurifunktion esittely
WinMain()
Muuttujien esittely
Tulevan lomakkeen ominaisuuksien asetus
Lomakkeen piirto annetuilla ominaisuuksilla
Sanomasilmukka (ikkunaproseduurin kutsu)
Ikkunaproseduuri
WM_DESTROY sanoman käsittely
Määrittelemättömien sanomien käsittely
 
Sivutilan tarjoaa Tietokonepalvelu Mikrolahti.