Kniga-Online.club
» » » » Владимир Волков - Программирование для карманных компьютеров

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

Читать бесплатно Владимир Волков - Программирование для карманных компьютеров. Жанр: Программирование издательство неизвестно, год 2004. Так же читаем полные версии (весь текст) онлайн без регистрации и SMS на сайте kniga-online.club или прочесть краткое содержание, предисловие (аннотацию), описание и ознакомиться с отзывами (комментариями) о произведении.
Перейти на страницу:

? Стиль 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: еще одну строку кода, объявляющую переменную для хранения идентификатора первой кнопки:

HWNDg_hwndB1;

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

g_hwndB1=CreateWindow(TEXT (В«BUTTONВ»), TEXT (В«ButtonВ»),

BS_PUSHBUTTON | BS_NOTIFY | WS_VISIBLE | WS_CHILD,

10, 20, 100,25, hWnd, (HMENU)200, g_hInst, NULL);

10. Теперь первая кнопка в левом столбце может принимать сообщения. Нужно обеспечить, обработку сообщений, посланных первой кнопкой в правом столбце. Параметр hMenu этой кнопки получил значение 207, значит, нужно обеспечить «узнавание» этого значения в переключателе switch. В функции WndProc следует отыскать блок case WM_COMMAND: (именно этот тип сообщений посылают кнопки и пункты меню, когда пользователь щелкает на них) и изменить его так, как показано в листинге 4.16. Листинг 4.16

case WM_COMMAND:

wmId = LOWORD(wParam);

wmEvent = HIWORD(wParam);

switch (wmId)

{

//Начало добавленного кода case 200:

case 200:

SendMessage (g_hwndB1, WM_SETTEXT, 0, (LPARAM)(LPSTR)L" Svoy text");

break;

case 207:

SendMessage (g_hwndB1, WM_SETTEXT, 0, (LPARAM)(LPSTR)L" Text ot 107");

break;

case 208:

MessageBox (hWnd, L" Этo тело сообщения!", L" A это заголовок", 0);

break;

//Окончание добавленного кода

case IDM_HELP_ABOUT:

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

Владимир Волков читать все книги автора по порядку

Владимир Волков - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки kniga-online.club.


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

Отзывы читателей о книге Программирование для карманных компьютеров, автор: Владимир Волков. Читайте комментарии и мнения людей о произведении.


Уважаемые читатели и просто посетители нашей библиотеки! Просим Вас придерживаться определенных правил при комментировании литературных произведений.

  • 1. Просьба отказаться от дискриминационных высказываний. Мы защищаем право наших читателей свободно выражать свою точку зрения. Вместе с тем мы не терпим агрессии. На сайте запрещено оставлять комментарий, который содержит унизительные высказывания или призывы к насилию по отношению к отдельным лицам или группам людей на основании их расы, этнического происхождения, вероисповедания, недееспособности, пола, возраста, статуса ветерана, касты или сексуальной ориентации.
  • 2. Просьба отказаться от оскорблений, угроз и запугиваний.
  • 3. Просьба отказаться от нецензурной лексики.
  • 4. Просьба вести себя максимально корректно как по отношению к авторам, так и по отношению к другим читателям и их комментариям.

Надеемся на Ваше понимание и благоразумие. С уважением, администратор kniga-online.


Прокомментировать
Подтвердите что вы не робот:*
Подтвердите что вы не робот:*