May
07

Скажите “нет” GAPI – Все что вам нужно знать об AllKeys и обработке нажатия клавиш в Windows Mobile

Google Buzz

Games API (GAPI) это технология, которая позволяла приложениям для Windows Mobile 2003 быстро отрисовывать графику на экране. В ней также были функции, которые позволяли получать сообщения о нажатии клавиш, даже для тех, которые обрабатываются операционной системой Windows Mobile самостоятельно.

Графическая составляющая GAPI была заменена на DirectShow (которая позволяла использовать аппаратное ускорение) в Windows Mobile 5.0. В тоже время поддерживалась совместимость с GAPI для того чтобы старые приложения продолжали работать.

Большая часть материалов по GAPI была упразднена в документации к Windows Mobile 6.1, в то же время функции для обработки ввода были оставлены и приложения могли запрашивать обработку нажатия всех клавиш. Совместимость приложений поддерживалась и для этой версии

Все это меняется в новой версии Windows Mobile, в Windows Mobile 6.5. В то же время некоторые устройства все еще могут поддерживать GAPI, но поддержка и тестирование GAPI более не является необходимостью для производителей устройств и для мобильных операторов. Это значит что если приложение требует GAPI, оно может вызвать непредсказуемое поведение на устройствах с Windows Mobile 6.5.

Другим важным изменением является тот факт что для приема в Windows Marketplace for Mobile и для сертификации Designed for Windows Mobile необходимо чтобы приложение не зависело от GAPI.

Для замены функционала, предоставляемого GAPI, новая функция для работы с клавиатурой была введена в публичное API. Это функция AllKeys(). В этой ситуации с введением новой функции есть одна классная штука – она была доступна и ранее наряду с GAPI b на самом деле это API функция, оберткой над которой GAPI и являлась. Это значит что миграция на AllKeys() lолжна быть довольно простой и обратную совместимость можно будет поддерживать без проблем.

Миграцию на AllKeys() можно осуществить очень просто – заменой

  • GXOpenInput() на AllKeys(TRUE).
  • GXCloseInput() на AllKeys(FALSE).

Функция AllKeys() поддерживается для Windows Mobile 2003 и выше. Определена в Winuser.h

Пример использования:

// process checkbox

case IDC_ALL_KEYS_CHECK_BOX:

if (g_AllKeys == true)
{
    // Allow the OS to intercept some button presses
     AllKeys(FALSE);
    g_AllKeys = false;
    // set button state
    SendMessage(hwndCtl,BM_SETCHECK, BST_UNCHECKED,0);
}
else
{
    // Do not allow os to intercept button presses
    AllKeys(TRUE);
    g_AllKeys = true;
    //set button state
    SendMessage(hwndCtl,BM_SETCHECK, BST_CHECKED,0);
}

Всю эту интересность я узнал из поста в Windows Mobile Team Blog. Эта статья является вольным переводом исходной.

Apr
29

Новые статьи по разработке для Windows Mobile на MSDN

Google Buzz

На MSDN появились новые статьи по разработке для Windows Mobile:

  • Getting Started with Building Windows Mobile Solutions with Visual Studio and Windows Mobile 6 SDK – очень интересная статья с описанием настройки эмулятора телефона
  • Selecting a Windows Mobile API – .NET Compact Framework and Win32
  • Creating a Compelling UI for Windows Mobile and the Microsoft .NET Compact Framework – в статье рассмотрен довольно неплохой пример создания привлекательных пользовательских интерфейсов для мобильных приложений.
Apr
29

Mobile Updater Application Block теперь OpenSource

Google Buzz

Компания Q4Tech подарила проекту Mobile Contribute исходники Mobile Updater Application Block – библиотеку для автоматического обновления мобильных приложений. Теперь он доступен на CodePlex по лицензии MS-PL.

К сожалению текущая версия предназначена для Visual Studio 2005, .NET Compact Framework 2.0 и Windows Mobile 5, но можно надеяться что в скором времени энтузиасты переведут проект на Visual Studio 2008.

Узнать более подробно о Mobile Updater Application Block можно здесь.

Apr
28

Русская версия Windows Mobile 6.5 в открытом доступе

Google Buzz

В РУнете в открытом доступе появилась русифицированная бета-версия новой операционной системы Windows Mobile 6.5. Она предлагается для скачивания на сайтах 4PDA.ru и клубе пользователей техники RoverComputers — ProRover.ru.

Файл прошивки можно получить в обмен на соблюдение нескольких условий:

  • предоставление сведений о себе
  • предоставление сведений о вашем мобильном устройстве
  • подтверждение формальных условий распространения прошивки

Windows Mobile 6.5 - Screenshots

Mar
21

Compact Framework: адаптируем графику приложения под текущую цветовую схему

Google Buzz

В этот раз статья Андрея Коновалова о работе с графикой в .NET Compact Framework.

Вступление

Как известно, на Windows Mobile устройствах существует возможность смены цветовой схемы. В случае, если приложение не использует графические элементы, достаточно воспользоваться набором цветов, предоставляемых классом SystemColors, чтобы приложение соответствовало текущей схеме. Из наиболее часто используемых имеет смысл отметить ActiveCaption, ActiveCaptionText, InactiveCaption, InactiveCaptionText, WindowText и.т.д. Также не стоит забывать про класс SystemBrushes, в котором представлены готовые для работы кисти — нет необходимости вызывать конструкторы и т.д.

Но что делать, когда есть набор изображений, которые должны соответствовать текущей цветовой схеме? Неужели делать набор картинок под все основные цвета?
читать далее…

Mar
20

Windows Mobile Widgets – Новый тип приложений для Windows Mobile

Google Buzz

Windows Mobile Widgets - MSN WidgetСегодня в блоге разработчиков Windows Mobile появилась информация о новом типе приложений, который будет доступен в Windows Mobile 6.5.

На данный момент для разработки приложений для Windows Mobile можно было использовать либо системное API (Native) либо управляемый код (Managed). В новой версии Windows Mobile ,удет доступна разработка приложений с использованием Web-технологий (HTML, CSS, AJAX, JavaScript).

Т.к. эти приложения будут использовать возможности новой версии Internet Explorer, то разработчики будут иметь доступ к использованию Flash и ActiveX компонентов, установленных на устройстве, таких, например, как MediaPlayer.

Заявлено также соответствие стандарту разработки мобильных widget-приложений от W3C, а также прозрачности для PNG-bзображений и нормальная работа с AJAX (support for the Window.XMLHttpRequest object work as expected).

Более подробно о новом типе приложений разработчики обещают рассказать на TechDays в апреле.

Mar
17

Compact Framework: Грани прозрачности

Google Buzz

Еще одна интересная статья от Андрея Коновалова. В статье рассмотрены особенности реализации отрисовки изображений с прозрачностью при использовании .NET Compact Framework.

Вступление

К большому сожалению разработчиков, Compact Framework, да и native-функции тоже, не поддерживают альфа-канал с разной прозрачностью у индивидуальных пикселей. Это означает, что нет возможности создавать красоту неописуемую с плавными переходами между изображениями. Однако, что же делать, если хочется иметь хотя бы подобие “полного” альфа-канала, а именно, выводить полупрозрачные изображения, у которых есть ещё и полностью прозрачные участки?
читать далее…

Mar
17

Кросс-платформенная разработка — Windows Mobile и Windows (.NET Compact Framework, C#)

Google Buzz

В этот раз статья от Андрея Коновалова о том, как сделать мультиплатформенный проект в Visual Studio с использованием .NET Compact Framework.
Не так много разработчиков осознают, что разрабатывая приложения для платформы Windows Mobile с использованием Compact Framework, у них существуют шансы собрать это же приложение под десктоп версию Windows! Я и сам об этом долгое время только задумывался, предполагая, что подобная возможность есть, но не рассматривал её как нечто, хоть сколько-нибудь реальное.

Существует несколько важных аспектов, которые нужно понимать, чтобы успешно организовать кросс-платформенную сборку. Я потратил прилично времени, собирая обломки знаний в разных местах сети, причём местами было настолько нетривиально, что решил поделиться с хабрасообществом тонкостями.
читать далее…

Mar
13

Как создать фигурное окошко в Windows Mobile

Google Buzz

И вот еще один небольшой пример, демонстрирующий создание окна непрямоугольной формы в Windows Mobile с библиотекой wxWinCE.

Для реализации подобной штуки нам, прежде всего, необходима форма со стилем wxFRAME_SHAPED, без этого стиля ничего не получится.

Ну а затем нужно выполнить вот такой финт ушами:

  • Создать изображение (черно-белое)
  • Создать для него контекст устройства
  • Нарисовать что-либо (черные пикселы станут прозрачными, белые – видимыми)
  • Создать регион из изображения (wxRegion)
  • Указать форме регион для отображения
void wxMobileTransparencyMainFrame::ChangeShape()
{
        int width(0), height(0);
        // Получаем размер окна
        GetClientSize(&width, &height);
        // Создаем изображение
        wxBitmap bitmap(width, height);
        // Создаем Device Context для изображения
        wxMemoryDC mdc(bitmap);
        // Заполняем черным цветом
        mdc.SetBackground(*wxBLACK_BRUSH);
        mdc.Clear();
        // Устанавливаем кисть белого цвета
        mdc.SetPen(*wxWHITE_PEN);
        wxPoint center(width/2, height/2);
        int radius = wxMin(width, height)/2;
        // Рисуем круг в центре
        mdc.DrawCircle(center, radius);
        // Устанавливаем кисть черного цвета
        mdc.SetPen(*wxBLACK_PEN);
        mdc.SetBrush(*wxBLACK_BRUSH);
        // Рисуем
        mdc.DrawCircle(center.x - radius/3, center.y-radius/4, radius/6);
        mdc.DrawCircle(center.x + radius/3, center.y-radius/4, radius/6);
        mdc.DrawEllipticArc(center.x-radius/3, center.y+radius/4,
                2 * radius / 3, radius/2,
                180, 360);
        // Освобождаем Device Context
        mdc.SelectObject(wxNullBitmap);
        // Создаем новый регион
        m_Region = new wxRegion(bitmap, *wxBLACK);
#if defined(__WXWINCE__)
        // Для wxWinCE метод SetRegion() ничего не делает, просто возвращает false.
        // Поэтому приходится устанавливать регион вручную
        HRGN hRgn = (HRGN)m_Region->GetHRGN();
        ::SetWindowRgn((HWND)GetHWND(), hRgn, FALSE);
#else
        int offset = GetSize().GetHeight()-GetClientSize().GetHeight();
        m_Region->Offset(0, offset);
        // Устанавливаем регион
        SetShape(*m_Region);
#endif
}

Создаем окно непрямоугольной формы в Windows Mobile
Скачать исходник: Создаем окно непрямоугольной формы в Windows Mobile

Mar
12

Windows® Marketplace for Mobile Developer Strategy

Google Buzz

Сегодня Microsoft опубликовала информацию о том, как будет функционировать online-сервис продажи мобильных приложений Windows® Marketplace for Mobile.

Итак, информация к размышлению:

  1. Сколько будет зарабатівать разработчик на продаже своих приложений?
    • Разработчик будет получать 70% от продаж в Windows Marketplace for Mobile (на сколько я понимаю, процент сравним с AppStore от Apple).
    • Приложение может продаваться на 29 торговых площадках (markets) с ценовым разграничением по каждой из них.
    • Также приложение может распространяться бесплатно, т.е. в Windows Marketplace for Mobile можно будет запостить и бесплатные приложения.
  2. Что нужно для регистрации?
    • Информация о регистрации будет доступна чуть позже (весной). Прием приложений планируется начать к лету.
    • Разработчики смогут выкладывать 5 приложений ежегодно за $99. И еще прийдется платить по $99 за каждое дополнительное приложение.
    • Для студентов, участвующих в программе DreamSpark, цены будут значительно снижены.
  3. Что нужно для того, чтобы приложение попалов Marketplace?
    • Сказано, что значительное внимание будет уделено совместимости и корректной работе приложений на мобильных устройствах. Планируется организовать процесс сертификации и тестирования приложений, выкладываемых в Marketplace.
    • разработчикам будет предоставляться детальная информация о результатах сертификации на Windows Marketplace for Mobile developer portal.
  4. Что нужно для того, чтобы начать разработку для Windows Mobile?
    • Можно использовать Visual Studio и .NET Compact Framework 3.5 (я так понимаю, они это говорят в рекламных целях, C++ еще вроде никто не отменял).
    • Скачать Windows Mobile 6.0 SDK и ознакомиться с информацией на http://developer.windowsmobile.com.

Ознакомиться с пресс-релизом можно здесь.

Интервью с Inigo Lopez, Marketplace Product Manager:

Аппарат плазменной резки: сварочный аппарат. Сварочные инверторы LORCH. ; Дверь: найдите лучшую: стальные двери от производителя. ; vip девочки

top