Загрузка картинки

Тема в разделе "WASM.WIN32", создана пользователем EvgA, 17 авг 2004.

  1. EvgA

    EvgA New Member

    Публикаций:
    0
    Регистрация:
    5 июл 2004
    Сообщения:
    5
    Адрес:
    Kazakhstan
    Здравствуйте!

    Кто работал с картинками в винде, подскажите как это нужно сделать.



    Короче есть картинка например buttons.bmp, в ней есть куча изображений картинок. Как мне из этой картинки, вырезать кусочек (с изображением нужной мне кнопки), создать device context в памяти (memory DC), в эту память перенести именно этот кусок с кнопкой для последующего блиттинга (BitBlt) на окно.



    Если можно то с куском кода, буду очень благодарен.
     
  2. s0rg

    s0rg New Member

    Публикаций:
    0
    Регистрация:
    7 апр 2004
    Сообщения:
    6
    Адрес:
    Russia
    Сначала ImageList_Create потом LoadBitmap

    и ImageList_Add...
     
  3. EvgA

    EvgA New Member

    Публикаций:
    0
    Регистрация:
    5 июл 2004
    Сообщения:
    5
    Адрес:
    Kazakhstan
    Тогда сразу еше два вопроса , можно ли делать так:

    1---------------------------

    invoke LoadImage, hinst, offset patch, IMAGE_BITMAP, 0,0,LR_LOADFROMFILE

    mov hBitMap, eax

    .if hBitMap != NULL

    invoke CreateCompatibleDC, hdcScreen

    mov hMemDC, eax

    invoke SelectObject, hMemDC, hBitMap

    invoke DeleteObject, hBitMap

    .endif

    я загрузил картинку, создал контекст, и тут вызвал SelectObject, что при этом происходит?, можно ли потом удалять (invoke DeleteObject, hBitMap) картинку, чтоб в памяти не валялась, и использовать после этого BitBlt c параметром HDC hdcSrc = hMemDC. Другими словами после вызова "invoke SelectObject, hMemDC, hBitMap" не создается ли в памяти копия картинки, которая и используется для блиттинга.



    2------------------------------

    Есть две функции BitBlt и ImageList_Draw

    BitBlt быстрее работает или также?