Главная » Win32 API

Работа с меню

Добавлено Дата: 5 July, 2012 категория: Win32 API

В большинстве Windows-приложений используется меню. Меню, располагающееся под заголовком окна, называется оконным или глав­ным меню. Плавающее меню может появиться в любом месте после щелчка правой кнопки мыши.

Любое меню состоит из пунктов, обозначаемых словом или графи­ческим изображением. Пункт меню может быть отмечен галочкой, что означает выбор некоторого режима работы приложения. Если после выбора пункта меню на экране должно появиться диалоговое окно, то после названия пункта меню ставится многоточие.

Читать »

Оконная функция и способы передачи сообщений окнам

Добавлено Дата: 4 July, 2012 категория: Win32 API

Оконная функция вызывается, когда в структуру mess попадает очередное сообщение, выбранное из входной очереди. Оконная функ­ция должна проанализировать код сообщения и обработать его. С каж­дым окном связывается своя оконная функция. В программе на С не­обходимо описать прототипы все оконных функций, так как это при­кладные функции с произвольными именами, а не системные, чьи про­тотипы описаны в WINUSER.H. Несмотря на то, что имена оконных функций произвольны, количество и типы ее параметров, а также тип возвращаемого значения в Windows жестко фиксированы. Описание оконной функции на С имеет вид:

Читать »

Пример программы по работе с элементами управления

Добавлено Дата: 3 July, 2012 категория: Win32 API

Рассмотрим приложение, иллюстрирующее ряд вышеперечислен­ных возможностей элементов управления. На форме разместим объек­ты следующих типов: List Box, Edit Box и две кнопки, одна из которых предназначена для перемещения текста из строки редактирования в список строк, а другая для перемещения выделенной строки из спи­ска в строку редактирования. Двойной щелчок по строке списка или нажатие клавиши «Enter» приводит к выводу окна с сообщением, текст которого берется из текущего элемента списка строк. Кроме того, соз­дадим на форме надпись, являющуюся статическим элементом управ­ления и предствляющую собой окно предопределенного класса «STATIC».

Читать »

Примеры программ по обработке сообщений от клавиатуры и мыши

Добавлено Дата: 3 July, 2012 категория: Win32 API

Пример 1. Реализовать изменение текста заголовка окна на за­данный текст по двойному щелчку правой кнопки в клиентской облас­ти окна Обратную замену заголовка осуществить по нажатию клавиши F1.

.model flat,stdcall

option casemap:none

Читать »

Список строк List Box

Добавлено Дата: 30 June, 2012 категория: Win32 API

Элемент управления «список строк» создается на основе предопре­деленного класса «listbox», отвечающего за формирование окна, в кли­ентской области которого отображается список, из которого можно осуществлять выбор одного или нескольких элементов. Если размеры окна для списка не позволяют вместить все строки, то создается поло­са прокрутки. В списке можно выбрать либо один элемент, либо не­сколько. Элементы списка могут быть удалены или добавлены.

Читать »

Примеры вывода в клиентскую область окна графики и текста

Добавлено Дата: 29 June, 2012 категория: Win32 API

Пусть в приложении необходимо выводить в клиентскую область окна текст, графические примитивы и растровое изображение. Для то­го чтобы можно было выполнять этот вывод независимо и в нужной последовательности, будем при нажатии клавиши «1» выводить стро­ки текста, при нажатии клавиши «2» выводить графические фигуры, а при нажатии «3» растровое изображение. Тогда выбор при выводе будем запоминать в переменной w при обработке сообщения об отпус­кании клавиши WMKEYUP, а собственно вывод будем реализовы-вать в функциях Font_Draw,   Graf_Draw и Paint_Proc:

Читать »

Метрики физического шрифта

Добавлено Дата: 29 June, 2012 категория: Win32 API

Отсчет всех размеров выполняется от базовой линии шрифта. На ней находится нижняя граница глифов большинства прописных букв. Высота шрифта tmHeight складывается из надстрочного интервала и подстрочного интервала. Надстрочный интервал tmAscent — это расстояние от базовой линии до верхней границы ячейки символа. Под­строчный интервал tmDescent — это расстояние от базовой линии до нижней границы ячейки символа. Внутренний зазор tmlntemalLeading определяет пространство для размещения диакритических знаков. Внешний зазор tmExtemalLeading определяет минимальный интервал между соседними строками для многострочного текста.

Читать »

Примеры приложений, работающих с собственными DLL

Добавлено Дата: 28 June, 2012 категория: Win32 API

Рассмотрим использование собственных DLL на нескольких при­мерах.

Пример 1. Рассмотрим три функции, включаемых в DLL: вычисле­ние степени числа, преобразование числа в строку и вывод числа, хра­нящегося в регистре еах.

Сначала напишем код, в котором реализуются функции DLL. Назо­вем файл MyDLL.asm.

Читать »

ДИНАМИЧЕСКИЕ БИБЛИОТЕКИ Общие сведения

Добавлено Дата: 28 June, 2012 категория: Win32 API

Библиотеки динамической компоновки (dynamic link libraries -DLL) являются исполняемыми файлами особого формата, которые содержат функции, данные или ресурсы, доступные для других приложений.

Особый формат модулей DLL предполагает наличие в них разделов импорта и экспорта. Раздел экспорта указывает те идентификаторы объектов (функций, классов, переменных), доступ к которым разрешен для клиентов.

Читать »

Работа со шрифтами и вывод текстовой информации

Добавлено Дата: 26 June, 2012 категория: Win32 API

Любой шрифт характеризуется следующими параметрами:

- гарнитура (typeface) совокупность нескольких начертаний сим­волов шрифта, имеющих одинаковый стиль. Примерами гарнитур яв­ляются Arial, Times New Roman, Courier New;

- размер шрифта высота прямоугольника, в котором помещается любой символ шрифта;

Читать »

Вызов функций WinAPI в среде MASM32

Добавлено Дата: 25 June, 2012 категория: Win32 API

MASM32 использует набор макросов, позволяющий приблизить синтаксис ассемблера к синтаксису языков высокого уровня и умень­шить количество ошибок. Каждый макрос имеет имя и формальные параметры, однако, в отличие от классических макросредств ассемб­лера, имена формальных параметров могут быть снабжены дополни­тельными модификаторами. Например, рассмотрим макрос с именем Prim, который имеет 4 параметра, из них первый обязателен, второй по

Читать »

Комбинированный список Combo Box

Добавлено Дата: 24 June, 2012 категория: Win32 API

Комбинированный список объединяет однострочный текстовый редактор и список строк, создается на основе предопределенного клас­са «Combobox».

Стиль комбинированного списка, определяемый в параметре dwStyle функции CreateWindowEx, является комбинацией стилей с префиксом WS_ (WS_CHILD, WS_VISIBLE, WS_VSCROLL) и спе­циализированных стилей с префиксами CBS_, перечисленных ниже:

Читать »

Сообщения и их структура

Добавлено Дата: 19 June, 2012 категория: Win32 API

Программирование в Windows основывается на использовании ин­терфейса прикладного программирования API (Application Program Interface). API предоставляют программисту набор готовых классов, функций, структур и констант. Их количество составляет около двух тысяч. API-функции обеспечивают взаимодействие приложения с внешними устройствами и ресурсами операционной системы.

Читать »

РАБОТА С ЭЛЕМЕНТАМИ УПРАВЛЕНИЯ ФОРМ

Добавлено Дата: 17 June, 2012 категория: Win32 API

Для улучшения функциональности приложений и удобства интер­фейса на форме обычно размещаются кнопки, списки строк, комбини­рованные списки, радиокнопки, строки для редактирования информа­ции и т.п. Все эти элементы описываются в Windows как окна предо­пределенных классов, причем они являются дочерними окнами (стиль WSCHILD). Каждый элемент управления, как правило, в программе обозначается идентификатором и имеет свой список обрабатываемых сообщений. Идентификатор необходим для различения элементов управления в родительской форме, а точнее, в ее оконной функции.

Читать »

Оконные сообщения и функции работы с окнами

Добавлено Дата: 16 June, 2012 категория: Win32 API

Окно это не только область на экране, посредством которой при­ложение может представить свой вывод, это еще и адресат событий и сообщений в среде Windows.

Окно идентифицируется по дескриптору окна. Этот дескриптор (переменная типа HWND) однозначно определяет каждое окно в сис­теме. Windows организует свои окна в иерархическую структуру:

Читать »