Учебные материалы по математике | Особенности работы с логическим инструментом | Matematiku5
Вузы по математике Готовые работы по математике Как писать работы по математике Примеры решения задач по математике Решить задачу по математике online

Особенности работы с логическим инструментом


Констант GCL_XXX из функции GetClassLong, определяющее нужное поле; dwNewLong-поле замены. Функция SetWindowPos (ByValhwndAsLong, ByValhWndInsertAfterAsLong, ByValx AsLong, ByValy AsLong, ByValcxAsLong, ByValcyAsLong, ByValwFlagsAsLong) –устанавливает окно в новую позицию. Имеет параметры: hWnd-дескриптор окна; hWndInsertAfter-дескриптор окна, перед которым в списке Z-order (определяет порядок расположения элементов окна) будет вставлено окно hWnd или одна из следующих констант:•HWND_BOTTOM –поместить окно на дно списка Z-order;

•HWND_TOP –поместить окно на верх списка Z-order; •HWND_TOPMOST –поместить окно поверх всех окон;

•HWND_NOTOPMOST –убрать окно с позиции«поверх всех окон».

84.Четыре способа создания и удаления контекста графических устройств.

Существуют 4 способа получения и удаления контекста устройства, каждый из которых определяется парой под программ. 1. Для перерисовки части рабочей области окна используется функция BeginPaint (ByValhwndAsLong, lpPaintAsPAINTSTRUCT)AsLong Эта функция возвращает дескриптор экранного контекста рабочей области, требующей обновления в ответ на сообщение с константой WM_PAINT. Размеры области определяются ОС Windows в структуре PAINTSTRUCT. Сообщение с константой WM_PAINT должно обрабатываться оконной функцией приложения. Удаление контекста, созданного функцией BeginPaint, осуществляется процедурой EndPaint (ByValhwndAsLong, lpPaintAsPAINTSTRUCT)AsLong, завершающей операцию по отображению в окне hWnd графической информации. Сообщение c константой WM_PAINT посылается ядром Windows, если необходимо перерисовать часть(или всю) рабочей области окна. Например, когда окно было частично перекрыто другим окном или часть окна потеряла свое прежнее содержимое и требует обновления. В этом случае ядро определяет ту область, которая подлежит перерисовке, и посылает программе ее координаты в структуре PAINTSTRUCT и сообщение с константой WM_PAINT, в ответ на которое прикладная программа должна сама восстановить содержимое окна. Первый раз прикладная программа получает это сообщение при вызове функции UpdateWindows. Оно также посылается и в случае изменения размеров окна, если стиль класса окна указан с атрибутами CS_HREDRAW иCS_VREDRAW. Попробуйте удалить функцию UpdateWindows из программы, основанной на обработке сообщений, и Вы уже не сможете работать с константами сообщений WM_RBUTTONDOWN, WM_CHAR, WM_KEYDOWN.2. Для перерисовки всей рабочей области окна используется функция GetDC(ByValhwndAsLong) AsLong Эта функция возвращает дескриптор контекста этой области. Удаление контекста, созданного функцией GetDC, осуществляется другой функцией ReleaseDC(ByValhwndAsLong, ByVal hdc As Long) As Long,которая освобождает контекст указанного окна и делает его обще доступным.

3.Для перерисовки всего окна, включая области, занятые заголовком, рамкой и меню, используется функция GetWindowDC(ByValhwndAsLong) AsLong Функции GetWindowDC в программе должна соответствовать функция ReleaseDC.

4.Для перерисовки всего экрана или для создания дескриптора контекста других графических устройств(принтера, плоттера) используется функция

CreateDC (ByVallpDriverNameAsString, ByVallpDeviceNameAsString, ByVallpOutputAsString, lpInitDataAsDEVMODE) AsLong, гдеlpDriverNameиlpDeviceName—имя драйвера и устройства;

lpOutPut-имяпорта ввода-вывода;

lpInitData-ссылка на

структуру типаDEVMODE, содержащую информацию о начальных установках принтера(плоттера). Функции CreateDC в программе должна соответствовать функция DeleteDC.

85.Основные характеристики контекста устройств. Способы задания цвета объектов в окне.

Во многих случаях стандартные параметры контекста нуждаются в изменении. Чаще возникает необходимость смены чертежного инструмента. Для этого в распоряжении программиста есть два способа: выбор инструмента из базового(встроенного, предопределенного) набора инструментов или создание собственного(логического) инструмента. Доступ к базовому набору(т. е. получение дескриптора инструмента) открывается функцией: GetStockObject(ByValnIndexAsLong) AsLong Полученный с помощью GetStockObject дескриптор базового инструмента затем включается в контекст с помощью функции SelectObject(ByValhdcAsLong, ByValhObjectAsLong) AsLong

86.Особенности работы с логическим инструментом. Пример отображения в окне прямоугольника заданного размера, толщины и цвета.

Используя функции API, нарисовать красный прямоугольник с толщиной линии в 30 пикселей. DimPenAsLong, OldPenAsLongConstLightRed= &HFF’ Идентификатора цветаPrivateSubCommand1_Click()DimhDcAsLonghDc= GetDC(Form1.hWnd)’Получаем дескриптор контекста формы ‘Создаем сплошное перо красногоцвета’ шириной 30 пикселей Pen= CreatePen(ps_Solid, 30, LightRed)’vbRed’ Вставляем перо в контексте OldPen= SelectObject(hDc, Pen)’Pисуем прямоугольник CallRectangle(hDc, 30, 30, 300, 200)

CallSelectObject(hDc, OldPen)’Восстанавливаем контекст CallDeleteObject(Pen) ‘Удаляем нестандартное перо’Освобождаем контекст окна CallReleaseDC(hWnd, hDc)EndSubPrivateSubForm_Load()Caption= "Пример использования контекста"Command1.Caption = "Rectangle"BackColor= &HFFFFFF’Белый цвет фона окнаEndSub

87.Работа со строками в Windows. Изменение цвета и фона строки текста.

Для работы со строками и файлами в Windows существуют свои функции. Однако чаще всего приходится работать со строками, поэтому уделим внимание API-функциям, выводящим текстовую информацию на экран. Для этой цели обычно пользуются функциями TextOutиDrawText. Кроме них есть функция ExtTextOut, которая используется при нестандартном межсимвольном расстоянии в тексте, и функция TabbedTextOut, выводящая текст, содержащий символы табуляции. Когда необходимо вывести строку текста в заданной опорной точке графического устройства, то используют функцию

TextOut(ByValhDcAsLong, ByValx AsLong, ByValy AsLong, ByVallpStringAsString, ByValnCount_AsLong) AsLong, где x, y —координаты начала текста(опорной точки), lpString-строка текста, nCount-количество выводимых символов. По умолчанию текст располагается так, чтобы опорная точка совпадала с левой верхней точкой прямоугольника, куда помещается текст, при этом высота прямоугольника равна высоте символов шрифта, а длина-длине текста. Местоположение опорной точки можно менять с помощью функции SetText(ByValhdcAsLong, ByValwFlagsAsLong) AsLong

Для изменения цвета фона области прямоугольника и цвета символов текста необходимо перед вызовом рассмотренных функций обратиться к функции измения цвета фона: SetBkColor (ByValhdcAsLong, ByValcrColorAsLong)AsLong и изменения цвета символов

SetTextColor(ByValhdcAsLong, ByValcrColorAsLong) AsLong, гдеcrColor — цвет фона(символов), который устанавливается функцией RGB или шестнадцатеричной константой. Последняя функция позволяет сохранить старое значение цвета для возможного восстановления. Например, OldColor:= SetTextColor(MyDC, RGB(50,50,50))’Меняем цвет’ *** Работасоцветом***SetTextColor(MyDC, OldColor) ‘Восстанавливаем цвет В Windows существуют два режима закраски фона текста: Transparent=1иOpaque=2(по умолчанию). В

Первом случае фон прямоугольника с налагаемым текстом не перерисовывается (при этом старая информация будет просвечивать сквозь налагаемую на нее новую информацию), а во втором-фон перерисовывается и старая информация закрашивается цветом фона прямоугольника с новой информацией. Установить режим закраски фона можно функцией SetBkMode(ByValhdcAsLong, ByValnBkModeAsLong) AsLong Определить текущий режим можно функцией GetBkMode.

88.Выбор опорной точки для вывода в окно текстовых сообщений.

По умолчанию текст располагается так, чтобы опорная точка совпадала с левой верхней точкой прямоугольника, куда помещается текст, при этом высота прямоугольника равна высоте символов шрифта, а длина-длине текста. Место положение опорной точки можно менять с помощью функцииSetText(ByValhdcAsLong, ByValwFlagsAsLong) AsLong

Аргумент wFlags может содержать комбинации следующих констант с префиксом TA_.

TA_BASELINE=24 –выравнивание по базовой линии шрифта.

TA_BOTTOM=8 –выравнивание по нижней стороне охватывающего прямоугольника.

TA_CENTER=6 —выравнивание по центру верхней стороны охватывающего прямоугольника. TA_LEFT=0 —выравнивание по левой стороне охватывающего прямоугольника.

TA_TOP=0 —выравнивание по верхней стороне охватывающего прямоугольника.

TA_RIGHT=2 –выравнивание по правой стороне охватывающего прямоугольника.

ТA_UPDATECP= 1 –координаты x, y функции TextOut игнорируются, вывод осуществляется относительно текущего положения пера(функция MoveToEx)

Для вывода много строчного текста используют функцию DrawText(ByValhdcAsLong, ByVallpStrAsString, ByValnCountAsLong, lpRectAsRECT, _ByValwFormatAsLong) AsLong Здесь аргумент nCount может иметь значение-1, что у кажет на то, что количество символов будет подсчитываться ядром Windows, а не Вами. Аргумент lpRect-переменная структуры RECT, содержащая координаты прямоугольной области:

Наташа

Автор

Наташа — контент-маркетолог и блогер, но все это не мешает ей оставаться адекватным человеком. Верит во все цвета радуги и не верит в теорию всемирного заговора. Увлекается «нефрохиромантией» и тайно мечтает воссоздать дома Александрийскую библиотеку.

Распродажа дипломных

 Скидка 30% по промокоду Diplom2020