Win32 pohja

Mureakuha

Loikkaa: valikkoon, hakuun
#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 (sanomaketjun ohittaville viesteille)
    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:

Kuva:Win32_tyhjäpohja.PNG

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
Tämän dokumentin kopiointi, levittäminen sekä muokkaaminen on sallittua GNU Free Documentation Licensen version 1.2 tai uudemman Free Software Foundationin julkaiseman version mukaisesti, ilman muuttumattomuuslauseketta tai kansitekstejä. Tätä koskee vastuuvapaus.
Kopio lisenssistä (englanniksi) löytyy täältä.

Alkuperäinen (c) Petteri Hämäläinen

Henkilökohtaiset työkalut