Как прикрутить scrollbar
От: Аноним  
Дата: 11.08.03 12:48
Оценка:
Как мне прикрутить scrollbar'ы к обычному view из sdi приложения
Re: Как прикрутить scrollbar
От: algol Россия about:blank
Дата: 11.08.03 14:05
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Как мне прикрутить scrollbar'ы к обычному view из sdi приложения


CScrollWindowImpl, CMapScrollWindowImpl
Re[2]: Как прикрутить scrollbar
От: AntonKasimov Россия  
Дата: 12.08.03 07:31
Оценка:
Здравствуйте, algol, Вы писали:

A>Здравствуйте, Аноним, Вы писали:

А>>Как мне прикрутить scrollbar'ы к обычному view из sdi приложения
A>CScrollWindowImpl, CMapScrollWindowImpl

Спасибо.
Но как теперь мне рисовать? До этого я перегружал OnPaint и рисовал в нем.
Посмотрел пример BmpVIEW, но там отображается картинка. Тогда я перенес весь код в DoPaint и удалил OnPaint

    CDC dcMem;
    dcMem.CreateCompatibleDC(dc);
    DrawStations(&dcMem);
    dc=dcMem;


Теперь вообще ничего не стало отображаться
И что мне теперь делать
Re[3]: Как прикрутить scrollbar
От: algol Россия about:blank
Дата: 12.08.03 07:51
Оценка:
Здравствуйте, AntonKasimov, Вы писали:

AK>Но как теперь мне рисовать? До этого я перегружал OnPaint и рисовал в нем.

AK>Посмотрел пример BmpVIEW, но там отображается картинка. Тогда я перенес весь код в DoPaint и удалил OnPaint

AK>
AK>    CDC dcMem;
AK>    dcMem.CreateCompatibleDC(dc);
AK>    DrawStations(&dcMem);
AK>    dc=dcMem;
AK>


AK>Теперь вообще ничего не стало отображаться

AK>И что мне теперь делать

А если написать просто
    DrawStations(&dc);

В приведенном коде много непонятного. Если рисуем в Memory DC, то где CreateCompatibleBitmap и BitBlt? И что значит dc = dcMem?
Re[4]: Как прикрутить scrollbar
От: AntonKasimov Россия  
Дата: 12.08.03 08:49
Оценка:
Вот код
void CLinksView::DoPaint(CDCHandle dc){
    CDC dcMem;
    dcMem.CreateCompatibleDC(dc);
    DrawStations(&dcMem);
    dc=dcMem;
}

Функция составлена по аналогии с примером из BmpVIEW
    void DoPaint(CDCHandle dc)
    {
        if(!m_bmp.IsNull())
        {
            CDC dcMem;
            dcMem.CreateCompatibleDC(dc);
            HBITMAP hBmpOld = dcMem.SelectBitmap(m_bmp);
            dc.BitBlt(0, 0, m_size.cx, m_size.cy, dcMem, 0, 0, SRCCOPY);
            dcMem.SelectBitmap(hBmpOld);
        }
    }


Только разница заключается в том, что там выводится bitmap, а у меня рисуется в своем dc и затем переносится в CDCHandle dc

Даже вопрос не в коде, а в том как рисовать в CScrollWindowImpl (документации по нему нет )
Re[5]: Как прикрутить scrollbar
От: algol Россия about:blank
Дата: 12.08.03 10:12
Оценка:
Здравствуйте, AntonKasimov, Вы писали:

AK>Функция составлена по аналогии с примером из BmpVIEW


AK>Только разница заключается в том, что там выводится bitmap, а у меня рисуется в своем dc и затем переносится в CDCHandle dc

AK>Даже вопрос не в коде, а в том как рисовать в CScrollWindowImpl (документации по нему нет )

В DoPaint уже передан dc, вот в нем и нужно рисовать. Код в примере выводит bitmap, его можно использовать по аналогии, если хочется делать вывод с буферизацией (чтобы избежать мерцания при обновлении и т.д.). Но тогда нужно создавать свой bitmap, выбирать его в контекст и рисовать в нем.
В любом случае строчка dc=dcMem всего лишь скопирует хендл в другую переменную и ничего больше.
Re[6]: Как прикрутить scrollbar
От: AntonKasimov Россия  
Дата: 12.08.03 11:52
Оценка:
Спасибо большое. Все понял и все работает
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.