WM_PAINT

Тема в разделе "WASM.BEGINNERS", создана пользователем zxcc, 14 мар 2007.

  1. zxcc

    zxcc New Member

    Публикаций:
    0
    Регистрация:
    21 окт 2006
    Сообщения:
    172
    Здравствуйте.В ниже приведенном коде перерисовываю окно(устанавливаю фон).Подскажите пожалуйста ,как сделать чтобы при выборе пользователя установить другой фон динамически.

    .IF uMsg==WM_INITDIALOG
    invoke BitmapFromResource, hInstance,IDB_MAIN
    mov hBitmap,eax

    .ELSEIF uMsg==WM_PAINT
    invoke BeginPaint,hWnd,addr ps
    mov hdc,eax
    invoke CreateCompatibleDC,hdc
    mov hMemDC,eax
    invoke SelectObject,hMemDC,hBitmap
    invoke GetClientRect,hWnd,addr rect
    invoke BitBlt,hdc,0,0,rect.right,rect.bottom,hMemDC,0,0,SRCCOPY
    invoke SelectObject,hdc,hOld
    invoke DeleteDC,hMemDC
    invoke EndPaint,hWnd,addr ps
     
  2. rmn

    rmn Well-Known Member

    Публикаций:
    0
    Регистрация:
    23 ноя 2004
    Сообщения:
    2.347
    А в чем сложности?
    hBitmap должна быть глобальной. Когда пользователь изменяет фон, ты удаляешь текущий битмап,
    подгружаешь из ресурсов новый и InvalidateRect(hWnd, NULL, TRUE);
     
  3. zxcc

    zxcc New Member

    Публикаций:
    0
    Регистрация:
    21 окт 2006
    Сообщения:
    172
    Спасибо rmn.