XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Общение> Трактир
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Ответ
 
RazArt

offline
Опыт: 11,197
Активность:
Сипп и массивы
Код:
void CWC3ColorerDlg::OnBnClickedButton1()
{
    int i,j,test=0;

    CClientDC dc(this);
    RGBQUAD RGB_n[256*256];
    tagBITMAPINFO bif;
    ZeroMemory(&bif, sizeof(bif));
    bif.bmiHeader.biSize = sizeof(bif);
    bif.bmiHeader.biWidth = 256; //ширина
    bif.bmiHeader.biHeight = -256; //выста (если взять положительную, то рисунок будет перевурнут)
    bif.bmiHeader.biBitCount = 24;//Глубина цвета, поскольку размер структуры RGBQUAD, 3 байта, то глубина цвета 3*8бита
    bif.bmiHeader.biPlanes = 1;
           
    for (i = 0; i < 256; i++){
        for (j = 0; j < 256; j++){
            RGB_n[test]->rgbRed = (((200 * i + 255 * (255 - i)) / 255) * j + 0 * (255 - j)) / 255;
            RGB_n[test]->rgbGreen = (((156 * i + 255 * (255 - i)) / 255) * j + 0 * (255 - j)) / 255;
            RGB_n[test]->rgbBlue = (((142 * i + 255 * (255 - i)) / 255) * j + 0 * (255 - j)) / 255;
            test+=test;
        }
    }
  
               SetDIBitsToDevice(dc,
                                 0, //DestX
                                 0, //DestY
                                 256, //Width
                                 256, //Height
                                 0, //SrcX
                                 0, //SrcY
                                 0, //StartScan
                                 256, //NumScans
                                 &RGB_n,//Bits
                                 &bif, //BitsInfo
                                 0 //Usage
                                 );

}

Компиль ругается на RGB_n[test]->rgbRed и т.д. Как присвоить значения определённому элементу массива или я чё путаю?
Старый 26.11.2009, 23:45
Sunn
To feel joy, not be blue
offline
Опыт: 4,975
Активность:
почти ничего не помню про сипп но мне кажется странным
Цитата:
Сообщение от RazArt
test+=test;

при том что test всё время 0
мож там просто +=1
и да, если в RGB_n не ссылки на экземпляры класса то насколько я помню методы надо вызывать через точку. Ну у тебя там просто доступ к полю класса.
Старый 27.11.2009, 00:36
RazArt

offline
Опыт: 11,197
Активность:
Хех, спс, помогло...

Отредактировано RazArt, 27.11.2009 в 01:02.
Старый 27.11.2009, 00:57
Sunn
To feel joy, not be blue
offline
Опыт: 4,975
Активность:
Ну я имею ввиду что массив
Код:
RGBQUAD RGB_n[256*256];

не содержит ссылок и обращатся к полям надо так
Код:
RGB_n[test].rgbRed = (((200 * i + 255 * (255 - i)) / 255) * j + 0 * (255 - j)) / 255;
RGB_n[test].rgbGreen = (((156 * i + 255 * (255 - i)) / 255) * j + 0 * (255 - j)) / 255;
RGB_n[test].rgbBlue = (((142 * i + 255 * (255 - i)) / 255) * j + 0 * (255 - j)) / 255;
Старый 27.11.2009, 01:03
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 04:44.