Перерисовка окна.

Тема в разделе "WASM.BEGINNERS", создана пользователем hogben28, 30 окт 2008.

  1. hogben28

    hogben28 Саша

    Публикаций:
    0
    Регистрация:
    27 июл 2008
    Сообщения:
    4
    Привет! Вобщем пишу я программу которая выводит на экран множество Мандельброта(пока black-white). Делаю все на WinApi+C(Моя первая программа). Само множество вывожу двумя циклами в которых последовательно вызиваются SetPixel(...), размер изображения 500х...(в зависимости о координат) пикселей. Все это делаю в сообщении WM_PAINT. И вот собственно вопрос: при таком подходе(насколько я понял) даже при перемещении окна происходит перерисовка, а перерисовка 500х... = хххххх пикселей и еще при этом для каждого нужно крутить цикл проверки, занимает время. Как сделать так чтоб при перемещении окна не происходила перерисовка рабочей области?
     
  2. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    4.229
    hogben28
    Грубо говоря, вы рисуете линии по-точечно функцией SetPixel, в то время как, для рисования линий можно (нужно) использовать более быстрые API-функции MoveToEx и LineTo. Второе, обычно картинку один раз рисуют в памяти, а уже готовую выводят на экран, а не заставляют ее перерисовывать каждый раз когда меняется размер окна или перемещение или происходит перекрытие вашего окна с последующей перерисовкой. Кратенько и с примером смотри в Iczelion, Урок 25. Простой битмэп более подробно в Графический интерфейс GDI в Microsoft Windows. Либо Шилдт Г. - "Программирование на С и С++ для Windows 95" или Петцольд Ч. - "Программирование для Windows 95"
     
  3. hogben28

    hogben28 Саша

    Публикаций:
    0
    Регистрация:
    27 июл 2008
    Сообщения:
    4
    Mikl___
    Я рисую не линии, мне нужно(грубо говоря) перебрать массив пикселей и в зависимости от их координат раскрасить их разным цветом.
    Спасибо! Похоже что Iczelion пишет как раз про то что мне нужно. А и за линк на книжку тоже спасибо она мне поможет раскрасить мое множество, а то в Петзольта о цветах только мельком упоминается.
     
  4. GoldFinch

    GoldFinch New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2008
    Сообщения:
    1.775
    Mikl___, там не линии а точки)

    а выводить надо конечно сразу весь массив (битмап)