Главная страница
Навигация по странице:

  • WndProc

  • RegisterClassEx

  • ShowWindow

  • WM_PAINT

  • EndPaint

  • DefWindowProc

  • Алгоритмизации


    Скачать 1.15 Mb.
    НазваниеАлгоритмизации
    Дата27.09.2022
    Размер1.15 Mb.
    Формат файлаdocx
    Имя файла12_100229_1_124427 (1).docx
    ТипДокументы
    #700459
    страница55 из 67
    1   ...   51   52   53   54   55   56   57   58   ...   67

    Примервыводатекста


    Чтобы легче было разобраться в некоторых аспектах работы с графикой в среде Windows, рассмотрим программу, создающую окно, в котором выводится текст «Hello, Windows !» [34].

    В тексте программы свыше 80 строк, большая часть из которых является надстройкой и будет повторяться почти в каждой программе для Windows.

    #include

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

    int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow)

    {

    static char szAppName[] = "Hello" ; HWND hwnd ;

    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);

    Приложение6

    wndclass.hCursor = LoadCursor (NULL, IDC_ARROW); wndclass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH); wndclass.lpszMenuName = NULL ;
    wndclass.lpszClassName = szAppName ;

    wndclass.hIconSm = LoadIcon (NULL, IDI_APPLICATION) ;

    RegisterClassEx (&wndclass) ; hwnd = CreateWindow(szAppName,

    "First Example", 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)

    {

    HDC hdc ; PAINTSTRUCT ps ;

    RECT rect ; switch (iMsg) {

    case WM_PAINT:

    hdc = BeginPaint(hwnd, &ps) ;

    GetClientRect(hwnd, &rect) ;

    DrawText (hdc, "Hello, Windows !", -1, &rect, DT_SINGLELINE | DT_CENTER | DT_VCENTER) ;

    EndPaint(hwnd, &ps) ; return 0 ;

    case WM_DESTROY:

    PostQuitMessage(0) ;

    return 0 ;

    }

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

    }


    Приложение6
    В программе создается стандартное окно (рис. П 6.1), в центре рабочей области которого выводится текст «Hello, Windows !».

    Это окно имеет все свойства Windows: можно захватить указателем мыши заголовок окна и перемещать его по всему экрану, можно изменить размеры окна, можно развернуть и увеличить его до размеров всего экрана, можно свернуть или завершить программу кнопкой закрытия окна.




    Рис. П 6.1. Результат программы Hello
    Рассмотрим действия данной программы.
    1   ...   51   52   53   54   55   56   57   58   ...   67


    написать администратору сайта