Владимир Волков - Программирование для карманных компьютеров
- Название:Программирование для карманных компьютеров
- Автор:
- Жанр:
- Издательство:неизвестно
- Год:неизвестен
- ISBN:нет данных
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Владимир Волков - Программирование для карманных компьютеров краткое содержание
Эта книга предназначена для того, чтобы читатель смог быстро научиться создавать мощные и эффективные приложения для наладонных компьютеров Pocket PC. Рынок программ для карманных компьютеров сейчас бурно развивается, и именно в этой отрасли программист-одиночка может успешно соперничать с большими корпорациями, которые создают программное обеспечение. Прочитав эту книгу, читатель сможет уверенно и быстро разрабатывать достаточно сложные приложения для Pocket PC. Огромное количество разнообразных примеров позволит быстро совершенствоваться и развиваться, обогащая свой опыт работы.
Книга предназначена для начинающих программистов.
Программирование для карманных компьютеров - читать онлайн бесплатно ознакомительный отрывок
Интервал:
Закладка:
• Error/Tag – позволяет в режиме отладки ввести код сгенерированной ошибки. При этом будет осуществлен переход на строку кода, в которой возникла ошибка.
• Line – номер строки в коде.
• Offset – число в шестнадцатеричном формате, означающее сдвиг от базового адреса в окне просмотра содержимого памяти.
? Команда Bookmarks выводит на экран окно, позволяющее установить закладку на текущей строке кода. Это же окно позволяет перейти к любой из закладок в списке.
? Команда Incremental Search позволяет прямо в окне редактирования кода начать ввод сочетания символов. По мере ввода в окне редактора будет выделено наиболее близкое сочетание. Это быстрый поиск, который осуществляется без использования окна Find.
• Команда Format Selection форматирует выделенный фрагмент текста в соответствии с установленными параметрами форматирования.
• Команда Tabify Selection указывает, что все используемые для отступа пробелы будут преобразованы в символы табуляции.
• Команда UnTabify Selection указывает, что все используемые для отступа символы табуляции будут преобразованы в пробелы.
• Команда Make Selection Uppercase позволяет перевести в верхний регистр все символы выделенного фрагмента.
• Команда Make Selection Lowercase позволяет перевести в нижний регистр все символы выделенного фрагмента.
• Команда View Witespace позволяет сделать видимыми символы пробела и табуляции.
? Команда Breakpoints выводит на экран диалоговое окно, позволяющее установить точки останова и задать их параметры.
? Команда List Members позволяет отобразить в выпадающем списке после имени структуры, класса или объекта список элементов данной структуры, класса или объекта.
? Команда Type Info показывает на всплывающем ярлычке, как было объявлено данное имя.
? Команда Parameter Info показывает на всплывающем ярлычке список параметров функции.
? Команда Complete Word показывает возможные варианты завершения набираемого в данный момент имени переменной или функции.
Работа с контекстным менюРяд команд, содержащихся в меню Edit, доступны из контекстного меню редактора кода. Это ускоряет работу с командами. Кроме того, в контекстном меню есть дополнительные команды, которые перечислены в списке.
? Команда Insert File Into Project позволяет внести ссылку на данный файл в структуру другого проекта. Конечно, она используется только тогда, когда в рабочем пространстве присутствует несколько проектов.
? Команда Open Document позволяет открыть документ, если выделенный фрагмент текста является его именем.
? Команда Insert/Remove Breakpoint устанавливает или удаляет точку останова на данной строке кода.
? Команда Enable/Disable Breakpoint включает или выключает точку останова, если она установлена на данной строке кода.
? Команда ClassWizard… выводит на экран мастер создания классов, который может использоваться только для приложений с использованием MFC.
Использование клавиатурных сочетанийПри редактировании кода вместо использования команд меню гораздо удобнее пользоваться «горячими» клавишами. В табл. 4.4 отображены некоторые сочетания «горячих» клавиш.
Таблица 4.4. Клавиатурные сочетанияCоздание интерфейса пользователя и работа с ресурсами
Когда после работы с Delphi или хотя бы с Visual Basic разработчик начинает создавать интерфейс пользователя в eVC, то у него неминуемо возникает вопрос, почему в названии этой среды есть слово Visual? Некоторые фрагменты интерфейса, конечно, можно сконструировать почти как в eVB, но далеко не все. Большую часть работы приходится делать при помощи объявления в коде. Это замедляет процесс разработки интерфеса, но при этом разрабточик получает максимально большой контроль над своим приложением. В этой части главы будет рассматриваться порядок создания интерфейса пользователя.
КнопкиБезусловно, кнопка является самой популярной частью пользовательского интерфейса. Поэтому в первом упражнении будет рассмотрено изготовление кнопок различного вида и стиля.
Упражнение 4.3
1. Создать новый проект (File ? New ? Projects ? WCE Pocket PC 2002 Application) и дать ему имя Buttons. Сохранить проект. На следующем шаге мастера нужно выбрать вариант A typical «Hello Word» application и нажать кнопку Finish.
2. Открыть файл Buttons.cpp, нажать сочетание клавиш Ctrl+F для вызова окна поиска, ввести строку case WM_CREATE и найти место в коде, где используется этот текст. Этот блок кода выглядит так, как показано в листинге 4.13.
Листинг 4.13case WM_CREATE:
g_hwndCB = CreateRpCommandBar(hWnd);
memset (&s_sai, 0, sizeof (s_sai));
s_sai.cbSize = sizeof (s_sai);
break;3. Этот блок кода обрабатывает событие создания формы. В этот момент на форме создается полоса меню. В этот блок кода будут добавлены строки, создающие на форме кнопки. Данный блок кода нужно изменить так, как это показано в листинге 4.14. Листинг 4.14
case WM_CREATE:
g_hwndCB = CreateRpCommandBar(hWnd);
memset (&s_sai, 0, sizeof (s_sai));
s_sai.cbSize = sizeof (s_sai);
CreateWindow(TEXT («BUTTON»), TEXT («Button»),
BS_PUSHBUTTON | BS_NOTIFY | WS_VISIBLE | WS_CHILD,
10, 20, 100,25, hWnd, (HMENU)200, g_hInst, NULL);
CreateWindow(TEXT («BUTTON»), TEXT («CheckBox»),
BS_CHECKBOX | WS_VISIBLE | WS_CHILD,
10, 50, 100,25, hWnd, (HMENU)201, g_hInst, NULL);
CreateWindow(TEXT («BUTTON»), TEXT («AutoCheck»),
BS_AUTOCHECKBOX | WS_VISIBLE | WS_CHILD,
10, 80, 100, 25, hWnd, (HMENU)202, g_hInst, NULL);
CreateWindow(TEXT («BUTTON»), TEXT («AutoChec_3State»),
BS_AUTO3STATE | WS_VISIBLE | WS_CHILD,
10, 110, 100, 25, hWnd, (HMENU)203, g_hInst, NULL);
CreateWindow(TEXT («BUTTON»), TEXT («RadioButton1»),
BS_AUTORADIOBUTTON | WS_VISIBLE | WS_CHILD,
10, 140, 100, 25, hWnd, (HMENU)204, g_hInst, NULL);
CreateWindow(TEXT («BUTTON»), TEXT («RadioButton2»),
BS_AUTORADIOBUTTON | WS_VISIBLE | WS_CHILD,
10, 170, 100, 25, hWnd, (HMENU)205, g_hInst, NULL);
CreateWindow(TEXT («BUTTON»), TEXT («OwnerDrawButton»),
BS_PUSHBUTTON | BS_OWNERDRAW | WS_VISIBLE | WS_CHILD,
10, 200, 100, 25, hWnd, (HMENU)206, g_hInst, NULL);
CreateWindowEx(WS_EX_OVERLAPPEDWINDOW, TEXT («BUTTON»), TEXT («Button»),
BS_PUSHBUTTON | BS_NOTIFY | WS_VISIBLE | WS_CHILD,
125, 20, 100,25, hWnd, (HMENU)207, g_hInst, NULL);
CreateWindowEx(WS_EX_WINDOWEDGE, TEXT («BUTTON»), TEXT («Button»),
BS_PUSHBUTTON | WS_VISIBLE | WS_CHILD,
125, 50, 100,25, hWnd, (HMENU)208, g_hInst, NULL);
CreateWindowEx(WS_EX_STATICEDGE, TEXT («BUTTON»), TEXT («Button»),
BS_PUSHBUTTON | WS_VISIBLE | WS_CHILD,
125, 80, 100, 25, hWnd, (HMENU)209, g_hInst, NULL);
CreateWindowEx(WS_EX_TOOLWINDOW, TEXT («BUTTON»), TEXT («Button»),
BS_PUSHBUTTON | WS_VISIBLE | WS_CHILD,
125, 110, 100, 25, hWnd, (HMENU)210, g_hInst, NULL);
CreateWindowEx(WS_EX_CLIENTEDGE, TEXT («BUTTON»), TEXT («Button»),
BS_PUSHBUTTON | WS_VISIBLE | WS_CHILD | WS_BORDER,
125, 140, 100, 25, hWnd, (HMENU)211, g_hInst, NULL);
CreateWindowEx(WS_EX_CLIENTEDGE, TEXT («BUTTON»), TEXT («Button»),
BS_PUSHBUTTON | WS_VISIBLE | WS_CHILD | WS_CAPTION,
125, 170, 100, 25, hWnd, (HMENU)212, g_hInst, NULL);
CreateWindowEx(WS_EX_CLIENTEDGE, TEXT («BUTTON»), TEXT («Button»),
BS_PUSHBUTTON | WS_VISIBLE | WS_CHILD | WS_OVERLAPPED,
125, 200, 100, 25, hWnd, (HMENU)213, g_hInst, NULL);
break;4. Следующий за этим блок кода, обрабатывающий событие прорисовки формы, приведен в листинге 4.15. Листинг 4.15
case WM_PAINT:
RECT rt;
hdc = BeginPaint(hWnd, &ps);
GetClientRect(hWnd, &rt);
FillRect(hdc, &rt, CreateSolidBrush(0xFFFF00));
//LoadString(g_hInst, IDS_HELLO, szHello, MAX_LOADSTRING);
//DrawText(hdc, szHello, _tcslen(szHello), &rt,
//DT_SINGLELINE | DT_VCENTER | DT_CENTER);
EndPaint(hWnd, &ps);
break;Следует обратить внимание на закомментированные строки. Это именно то изменение, которое нужно внести в код. Переведя эти строки в состояние комментария, можно предотвратить вывод на форму надписи «Hello, Word!». Добавленный в код метод FillRect закрашивает ее в цвет Magenta. Теперь нужно скомпилировать проект и запустить его. Результат выполнения программы показан на рис. 4.5.
Читать дальшеИнтервал:
Закладка: