GDI: как на Button поместить картинку?

Тема в разделе "WASM.WIN32", создана пользователем Quark, 6 ноя 2008.

  1. Quark

    Quark New Member

    Публикаций:
    0
    Регистрация:
    7 авг 2007
    Сообщения:
    211
    у меня в ресурсах есть битмап. мне нужно чтобы в диалоговом окне на кнопке была нарисована картинка. можно через CompatibleDC BitBlt..., но предётся переопределять процедуру окна буттона.
     
  2. AsmGuru62

    AsmGuru62 Member

    Публикаций:
    0
    Регистрация:
    12 сен 2002
    Сообщения:
    689
    Адрес:
    Toronto
    1. При создании кнопки укажи стиль BS_BITMAP:
    Код (Text):
    1. HWND hBtn = CreateWindow (... , BS_BITMAP | WS_CHILD | WS_VISIBLE, ...);
    2. После создания кнопки отправь ей сообщение BM_SETIMAGE:
    Код (Text):
    1. SendMessage (hBtn, BM_SETIMAGE, IMAGE_BITMAP, (LPARAM) <твой битмап хендл>);
    http://msdn.microsoft.com/en-us/library/bb761822(VS.85).aspx
     
  3. Quark

    Quark New Member

    Публикаций:
    0
    Регистрация:
    7 авг 2007
    Сообщения:
    211
    А если картинку нужно менять (при нажатии, наведении мышки...). Предётся опять-таки перехватывать оконную процедуру?
     
  4. Y_Mur

    Y_Mur Active Member

    Публикаций:
    0
    Регистрация:
    6 сен 2006
    Сообщения:
    2.494
    кнопка посылает родительскому окну BN_PUSHED/BN_UNPUSHED, BCN_HOTITEMCHANGE (только >= XP)