Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Изменение цвета BMP картинок при выводе!!!

28K
09 апреля 2008 года
D-Luxe
18 / / 08.03.2008
Пишу игру Крестики-Нолики под Visual Studio 2005, приложение Dialog Based. Я использую ниже представленный BMP для вывода крестиков и ноликов (вывожу функцией BitBlt). Задача состоит в том, что нужно изменить цвет крестика и нолика при выводе. Вот код функции OnPaint
Код:
void CXOgameDlg::OnPaint()
{
    CPaintDC* pDC = new CPaintDC(this);
    CBrush brush(Field_Colour);
    pDC->SelectObject(&brush);
    pDC->Rectangle(0,60,400,460);

    CDC cd;             //Контекст для изображения в памяти
    CBitmap bit;            //Объект для управления битовым изображением
    bit.LoadBitmap(IDB_BITMAP); //Загрузим картинку из ресурсов
    cd.CreateCompatibleDC(pDC); //Создать контекст устройства в памяти
    cd.SelectObject(&bit);      //Выбрать картинку в контексте устройства
    for (int i = 0; i < 25; i++)
        for (int j = 0; j < 25; j++)
        {
            if (Field [i+1][j+1] > 2)
            {
                CBrush brush(RGB(130,130,130));
                pDC->SelectObject(&brush);
                pDC->Rectangle(16*i,60+16*j,16+16*i,76+16*j);
            }
            pDC->BitBlt(16*i,60+16*j,16,16,&cd,0,0,SRCAND); //Выводим Bitmap
        }
    for (int i = 0; i < 25; i++)
        for (int j = 0; j < 25; j++)
            if(Field[i+1][j+1] == 1 || Field[i+1][j+1] == 3)
                pDC->BitBlt(16*i,60+16*j,16,16,&cd,16,0,SRCAND);//Вывод крестика
            else if(Field[i+1][j+1] == 2 || Field[i+1][j+1] == 4)
                pDC->BitBlt(16*i,60+16*j,16,16,&cd,32,0,SRCAND);//Вывод нолика
}
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог