Читаем Программирование для карманных компьютеров полностью

? Стиль ES_NOHIDESEL заставляет поле ввода оставлять цветовую пометку выделенного текста, когда элемент потерял фокус.

? Стиль ES_NUMBER указывает, что редактор принимает при вводе только цифры.

? Стиль ES_0EMC0NVERT указывает, что редактор автоматически преобразует вводимый текст из набора символов Windows CE в OEM и обратно. Это нужно, когда в окно редактора вводятся имена файлов.

? Стиль ES_PASSWORD указывает, что вместо вводимого пользователем текста отображаются звездочки.

? Стиль ES_READONLY задает отображение текста без возможности его редактирования.

? Стиль ES_RIGHT отвечает за выравнивание текста по правому краю.

? Стиль ESJJPPERCASE отвечает за автоматическое преобразование всех вводимых символов к верхнему регистру.

? Стиль ES_WANTRETURN определяет ввод в редактор символа возврата каретки при нажатии клавиши ENTER.

LISTBOX

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

? Стиль LBS_DISABLENOSCROLL принудительно отображает неактивную вертикальную полосу прокрутки. По умолчанию полоса прокрутки появляется, если небходима, а если нужды в ней нет, то она невидима.

? Стиль LBS_EXTENDEDSEL позволяет пользователю выделять несколько элементов списка при помощи клавиш или мыши с нажатой клавишей SHIFT.

? Стиль LBS_MULTICOLUMN создает список с несколькими колонками, который прокручивается в горизонтальном направлении.

? Стиль LBS_MULTIPLESEL позволяет выделять несколько строк одновременно.

? Стиль LBS_N01NTEGRALHEIGHT определяет постоянный размер элемента списка, запрещая ему подстраиваться под размер окна.

? Стиль LBSNOREDRAW отвечает за отключение автоматической перерисовки при изменении списка.

? Стиль LBS_N0SEL запрещает пользователю выбирать элементы списка.

? Стиль LBS_NOTIFY заставляет список оповещать родительское окно о том, что пользователь совершил одинарный или двойной щелчок.

? Стиль LBS_S0RT автоматически сортирует строки в списке по алфавиту.

? Стиль LBS_STANDARD совмещает несколько других стилей. Он реализует сортировку строк по алфавиту, передачу сообщений родительскому окну и обрамление списка.

? Стиль LBSJJSETABSTOPS позволяет распознавать и использовать символы табуляции в строке при выводе элементов списка.

? Стиль LBS_WANTKEYBOARDINPUT указывает, что когда список обладает фокусом ввода и пользователь нажимает клавишу, то родительское окно получает сообщение WM_VKEYTOITEM, позволяющее сопоставить событие клавиатуры с выбранным элементом списка.

COMBOBOX

Элемент COMBOBOX позволяет не только выбирать значения из списка, но и вводить их. Соответствующие стили для создания этого органа управления приведены ниже.

? Стиль CBS_AUTOHSCROLL определяет автоматическую прокрутку вправо при достижении вводимым текстом границы окна редактирования.

? Стиль CBS_DISABLENOSCROLL заставляет список показывать неактивную вертикальную полосу прокрутки.

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

? Стиль CBS_DROPDOWNLIST отображает выбранный элемент списка как статический текст, не допускающий редактирования.

? Стиль CBSJ-OWERCASE отвечает за преобразование вводимых пользователем символов в нижний регистр.

? Стиль CBS_NOINTEGRALHEIGHT запрещает изменение размера.

? Стиль CBS_0EMC0NVERT позволяет осуществлять преобразование кодовой таблицы от Windows CE в OEM и обратно.

? Стиль CBS_S0RT отображает в списке строки, отсортированные по алфавиту.

? Стиль CBS_UPPERCASE отвечает за преобразование вводимых пользователем символов к верхнему регистру.

SCROLLBAR

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

? Стиль SB_H0RZ определяет горизонтальное расположение полосы прокрутки.

? Стиль SB_VERT – определяет вертикальное расположение полосы прокрутки.

STATIC

Этот орган управления предназначен для отображения графического изображения или нередактируемого текста. Соответствующие стили перечислены ниже.

? Стиль SS_BITMAP указывает, что в окне будет показано изображение. Изображение должно храниться в файле ресурсов. Размер элемента будет автоматически подогнан под размер изображения.

? Стиль SS_CENTER создает прямоугольник со статическим текстом, выровненным по центру. Если длина текста больше, чем ширина окна, то осуществляется перенос текста по границе слова.

? Стиль SS_CENTERIMAGE создает окно с изображением, центр которого постоянен. Если изображение больше, чем окно, то границы раздвигаются, а центр остается на месте. Если изображение меньше границ окна, то стороны остаются на месте, а незаполненная часть окна закрашивается цветом верхней левой точки изображения.

? Стиль SS_IC0N указывает, что в окне будет отображена пиктограмма, которая хранится в файле ресурсов.

? Стиль SSJ.EFT создает прямоугольник с текстом, прижатым влево.

? Стиль SS_LEFTNOWORDWRAP создает прямоугольник с текстом, прижатым влево, но без переноса. Не уместившийся в прямоугольник текст будет обрезан.

? Стиль SS_NOPREFIX запрещает интерпретацию символа амперсанда (&) как обозначения горячих клавиш.

? Стиль SS_N0TIFY заставляет орган управления оповещать родительское окно, о том, что пользователь щелкнул на элементе.

? Стиль SS_RIGHT создает прямоугольник с текстом, прижатым вправо.

Event-Driven Programming и Window Messages

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

Сообщения генерируются не только при щелчке на элементе, но и при других событиях, которые с ним происходят. Это может быть изменение размера, перерисовка, выбор элемента в списке или срабатывание таймера. Приложение занимается тем, что реагирует на эти события. Поэтому модель программирования в Windows называется Event-Driven Programming (программирование по событиям).

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

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

Упражнение 4.3 (продолжение)

Для того чтобы окно приняло сообщение, оно должно получить сообщение в очередь сообщений. Операцию доставки сообщения в очередь обеспечивает операционная система. Затем, перебирая очередь сообщений, окно должно идентифицировать полученное сообщение и обеспечить соответствующую реакцию. Перебор очереди сообщений обеспечивает цикл выборки сообщений. В коде он описан внутри основной функции WinMain и помечен комментарием // Main message loop:. Этот код автоматически создается средой разработки. Идентификация выбранного из списка сообщения происходит в оконной процедуре WndProc при помощи переключателя switch. Оконная процедура идентифицирует тип сообщения (например, WM_COMMAND) и его источник. Источник сообщения распознается по идентификатору, который был присвоен каждой кнопке во время ее создания (параметр hMenu). Код соответствующей ветки case переключателя switch определяет действия, которые будут предприняты при поступлении данного сообщения.

Чтобы послать сообщение окну, надо вызвать функцию SendMessage. Первым параметром в эту функцию передается идентификатор окна, которому посылается сообщение. Значит, если нужно послать сообщение окну, то следует получить его идентификатор и поместить его в соответствующую переменную, которую можно использовать при вызове функции.

8. Добавить в начало модуля, туда, где находится блок кода, обозначенный комментарием как // Global Variables: еще одну строку кода, объявляющую переменную для хранения идентификатора первой кнопки:

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных