Часто задаваемые вопросы и ответы по C/C++/Visual C++
Последнее обновление: 27.08.2003
FAQ по C/C++/Visual C++
Работа с сетью
Как сделать фоновое изображение
Составители: SUnteXx, Leprecon
Как сделать фоновое изображение
A: (SUnteXx)
Оригинальная ссылка: нету

В сообщение WM_ERASEBKGND пишем следующее:
    BITMAP bm; 
    HDC hdcMem; 
    hdcMem=CreateCompatibleDC(hdc); 
    SelectObject(hdcMem, back); 
    GetObject(back, sizeof(BITMAP), (LPVOID)&bm);
    RECT r; 
    GetClientRect(hwnd, &r); 
    if (!bm.bmWidth || !bm.bmHeight) 
        return; 

    int w=r.right-r.left, 
        h=r.bottom-r.top, 
        bw=bm.bmWidth, 
        bh=bm.bmHeight; 

    for(int i = 0; i < w; i += bw)
        for(int j = 0; j < h; j += bh)
            BitBlt(hdc, i, j, bm.bmWidth, bm.bmHeight, hdcMem, 0, 0, SRCCOPY); 

    DeleteDC(hdcmem); 
Параметры:
HDC hdc; // указатель на DC
HWND hwnd; // указатель на окно
HBITMAP back; // указатель на картинку, которую будем рисовать в фоне
Содержание Обсудить на форуме « Предыдущая статья | Следующая статья »
Перейти к FAQ:  
FAQ составлен по материалам Форума на Исходниках.Ру.
Copyright © 2002 by Sources.ru. All rights reserved.