Как Работать С Dib Битмэпами Для Windows Ce 6.0

Тема в разделе "MS Visual C++", создана пользователем ESWANT, 15 май 2013.

  1. ESWANT

    ESWANT Member

    Регистрация:
    15 май 2013
    Сообщения:
    6
    Симпатии:
    0
    Здравствуйте все!

    Пишу программу которая должна работать на Win32 и WinCE
    Два разных проекта но они используют общие модули и общие функции
    код различаю с помощью #ifdef UNDER_CE .....
    Для разработки Visual Studio 2008


    Мне надо отображать прозрачные и масштабируемые картинки из ресурсов и из файлов BMP
    Из ресурсов получается просто:

    hBitmap=LoadBitmap(hInst, MAKEINTRESOURCE(ID_BITMAP.....));//загружаю из ресурса
    ......
    и когда дело дошло до рисования:
    hmdc=CreateCompatibleDC(hdc); //Создаёт совместимый с оконным контекст памяти
    SelectObject(hmdc, hBitmap); //Выбирает объект картинку
    GetObject(hBitmap, sizeof(bm), (LPSTR) &bm); //получаем высоту и ширину картинки


    #ifdef UNDER_CE
    TransparentBlt(hdc,r.left,r.top,r.right-r.left,r.bottom-r.top,hmdc,0,0,bm.bmWidth,bm.bmHeight,0x00FFFFFF);//благо этот макрос в CE проекте определен
    #else
    McTransparentBlt(hdc,r.left,r.top,r.right-r.left,r.bottom-r.top,hmdc,0,0,bm.bmWidth,bm.bmHeight,0x00FFFFFF);//а для win32 пришлось отдельную функцию заимствовать
    #endif
    DeleteDC(hmdc); //удаляем из памяти контекст


    Как сделать тоже самое но для картинки из файла (картинка безпалитровая 24бита на пиксель)и именно для WinCE
    Для Win32 тоже получается просто так как существует LoadImage(... LR_LOADFROMFILE ...)

    А ДЛЯ WinCE определения LR_LOADFROMFILE - НЕТ!

    Я попытался решить эту проблему чтением DIB из файла и преобразованием в DDB
    НО оказывается функции CreateDIBitmap() в WinCE - НЕТ !!!!!
    Хотя есть CreateDIBSection() Но что толку..
    Как проинициализировать биты изображения Функции SetDIBits - тоже НЕТ!

    Что делать:??? при помощи SetPixel что ли рисовать

    Забыл сказать использую только чистый Windows API

    помогите...
     
Загрузка...

Поделиться этой страницей