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

  • PostQuitMessage

  • GetDC

  • GetWindowDC

  • CreateCompatibleDC

  • GetDeviceCaps

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


    Скачать 1.15 Mb.
    НазваниеАлгоритмизации
    Дата27.09.2022
    Размер1.15 Mb.
    Формат файлаdocx
    Имя файла12_100229_1_124427 (1).docx
    ТипДокументы
    #700459
    страница61 из 67
    1   ...   57   58   59   60   61   62   63   64   ...   67

    СообщениеWM_DESTROY


    Пользователь вызывает это сообщение, если щелкнет кнопку закрытия окна (выберет Close из системного меню программы, или нажмет <Alt> +

    <F4>).

    Программа на это сообщение вызывает функцию

    PostQuitMessage(0);

    которая ставит сообщение WM_QUIT в очередь. Функция GetMessage возвращает ненулевое значение при любом сообщении, полученном из очереди, кроме WM_QUIT, при котором она возвращает значение 0, что

    Приложение6

    заставляет WinMainпрервать цикл обработки сообщений и выйти в систему, закончив программу.

      1. Получениеописателяконтекстаустройства


    В простейшем случае описатель контекста (контекст) может быть получен с помощью функций:

    HDC GetDC(HWND hwnd);

    HDC GetWindowDC(HWND hwnd);

    HDC GetDCEx(HWND hwnd, HRGN hrgnClip, DWORD dwFlags);

    Функции GetDC и GetDCEx возвращают контекст клиентской области окна (без заголовка, рамки и пр.). Контекст всего окна может быть получен с помощью функций GetWindowDCили GetDCExс соответствующим флагом:

    DCX_WINDOW дать контекст всего окна, включая системную область;

    DCX_PARENTCLIP использовать видимую часть родительского окна;

    DCX_CLIPCHILDREN исключить подчиненные окна;

    DCX_NORESETATTRS не сбрасывать состояние контекста при его освобождении и т.д.

    При этом поведение функций зависит также от некоторых установок стиля оконного класса:

    CS_CLASSDC использовать единственный разделяемый контекст для всех окон данного класса;

    CS_OWNDC использовать собственный контекст для каждого экземпляра окна;

    CS_PARENTDC использовать контекст и регион отсечения родительского окна и т.д.

    Кроме получения контекста существующего окна можно создавать новые контексты, связанные с определенным устройством.

    Функции

    HDC CreateDC(LPCTSTR lpszDriver, LPCTSTR lpszDevice, LPCTSTR lpszOutput, CONST DEVMODE* lpInitData);

    HDC CreateCompatibleDC(HDC hPrimDC);

    создают новый контекст, связанный с указанным устройством (CreateDC) или совместимым с известным контекстом (CreateCompatibleDC). Во втором случае если «образцовый» контекст не задан, то создается контекст в памяти(memorycontext), совместимый с текущими установками экрана.

    Возвращаемое значение – описатель контекста или NULL в случае ошибки. Параметры:

    lpszDriver может быть DISPLAYдля контекстов, связанных с экраном, и NULL для всех других устройств;

    lpszDevice логическое имя устройства в системе;

    lpszOutput имя устройства в файловой системе Win32 NULL);


    Приложение6

    lpInitData указатель на структуру DEVMODEс инициирующими данными для устройства, NULL– настройки по умолчанию;

    hPrimDC «образцовый» контекст, с которым будет совместим вновь создаваемый, если NULL – экран с текущими настройками.

    По окончании работы с контекстом он должен быть освобожден (закрыт). Для контекстов, полученных с помощью функций Get..., используется функция

    int ReleaseDC(HWND hwnd, HDC hdc);

    которая освобождает «общие» и оконные контексты.

    Для контекстов, созданных с помощью функций Create..., используется функция

    int DeleteDC(HDC hdc);

    возвращает 1 при успешном завершении, 0 при ошибке.

    Многие характеристики действующего контекста могут быть получены с помощью функцииGetDeviceCaps(), принимающей в качестве аргумента описатель контекста и индекс (номер) интересующего параметра (описываются системными константами) и возвращающей значение этого параметра.

      1. 1   ...   57   58   59   60   61   62   63   64   ...   67


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