Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Visual C++/MFC/WTL > Перерисовка окна


Автор: serg405 4.8.2009, 13:49
Есть окно. Мне нужно взять из него квадрат и опустить вниз на N пикселей. Все происходит в OnPaint. Пробовал делать вот так почемуто не сработало

Код

CDC memDC;
    memDC.CreateCompatibleDC(pDC);
    CBitmap bmp;
    bmp.CreateCompatibleBitmap(pDC,m_WndClientRect.Width(),NewbottomRect.Height());

    pDC->BitBlt(m_WndClientRect.left,NewbottomRect.top,m_WndClientRect.Width(),NewbottomRect.Height(),&memDC,0,0,SRCCOPY);


Также пробовал вот так тоже не работает
Код

pDC->DrawDragRect(&NewbottomRect, CSize(2,2), &bottomRect, CSize(2,2),NULL,NULL);

Автор: Earnest 4.8.2009, 13:58
Используй ScrollWindow(Ex). И не надо делать это на OnPaint.

Автор: serg405 4.8.2009, 14:52
Не задача не та. 
у меня чтото вроде листа имне нужно сделать вставку.

item1
item2
item3
        <-item4
item5
item6
item7

нужно опустить item5 item6 item7 чтобы вставить item4

Автор: serg405 4.8.2009, 15:35
вот так заработало, но может есть способ потребляющий меньше ресурсов?
Код

pDC->BitBlt(NewbottomRect.left,NewbottomRect.top,NewbottomRect.Width(),NewbottomRect.Height(),pDC,
                    bottomRect.left,bottomRect.top,SRCCOPY);

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)