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
 
Laajennettu pohja
Kaikkein käyttökelpoisin C/Win32 API -ohjelma josta on hyvä jatkaa eteenpäin:

 

#include <windows.h>

LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM);
HINSTANCE hInstance;

int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow)
{
    MSG msg;
    WNDCLASSEX wndclass;

    wndclass.cbSize = sizeof (wndclass);
    wndclass.style = CS_HREDRAW | CS_VREDRAW;
    wndclass.lpfnWndProc = WndProc;
    wndclass.cbClsExtra = 0;
    wndclass.cbWndExtra = 0;
    wndclass.hInstance = hInstance;
    wndclass.hIcon = LoadIcon (NULL, IDI_APPLICATION);
    wndclass.hCursor = LoadCursor (NULL, IDC_ARROW);
    wndclass.hbrBackground = (HBRUSH) COLOR_WINDOW;
    wndclass.lpszMenuName = NULL;
    wndclass.lpszClassName = "OmaLuokka";
    wndclass.hIconSm = LoadIcon (NULL, IDI_APPLICATION);

    RegisterClassEx (&wndclass);

    HWND hwnd = CreateWindow ("OmaLuokka", "OmaOhjelma", WS_OVERLAPPEDWINDOW,
               CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,
               CW_USEDEFAULT, NULL, NULL, hInstance, NULL);

    ShowWindow (hwnd, iCmdShow);
    UpdateWindow (hwnd);

    while (GetMessage (&msg, NULL, 0, 0))
    {
        TranslateMessage (&msg);
        DispatchMessage (&msg);
    }

    return msg.wParam;
}

LRESULT CALLBACK WndProc (HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam)
{
    static HWND hwndGroupbox;
    static HFONT hFont;

    switch (iMsg)
    {

    case WM_CREATE :
        hFont = (HFONT) GetStockObject(DEFAULT_GUI_FONT) ;
        hwndGroupbox = CreateWindowEx(NULL, "button", "OmaOhjelma",
                     WS_CHILD | WS_VISIBLE | BS_GROUPBOX, 0, 0, 0, 0, 
                     hwnd, (HMENU) 0, hInstance, NULL);
        SendMessage (hwndGroupbox, WM_SETFONT, (WPARAM) hFont, MAKELPARAM(TRUE, 0));
        return 0;

    case WM_COMMAND:
        return 0;

    case WM_SIZE:
        MoveWindow (hwndGroupbox, 10, 10, LOWORD(lParam)-20, HIWORD(lParam)-20, TRUE);
        return 0;

    case WM_DESTROY:
        PostQuitMessage (0);
        return 0;

    }

    return DefWindowProc (hwnd, iMsg, wParam, lParam);
}

 

Lisäykset:

  • Ohjelma osaa käyttää oikeaa systeemifonttia
  • Lomakkeelle piirretään kehyskontrolli
  • Lomaketta voi suurentaa ja pienentää ja WM_SIZE sanoma skaalaa kehyksen sitä mukaa
 
Sivutilan tarjoaa Tietokonepalvelu Mikrolahti.