Re[2]: CFrameWnd и его фон.
От: DrMom  
Дата: 21.04.03 14:46
Оценка:
Здравствуйте, Serguei666, Вы писали:

S>Здравствуйте, DrMom, Вы писали:


DM>У меня не получается самостоятельно ресайзить окно и заставить его востонавливать свой фон. Получается только либо окно ресайзится и само полностью перерисовывается, либо ресайзится мной, но перерисовывается хреново, оставляя не востановленным фон. Может кто подскажет, что надо изменить, мож стиль какой в классе окна или еще чего?


S>Invalidate() вы вызываете?

S>А вообще желательно бы на код глянуть

void CMainFrame::OnSizing(UINT nSide, LPRECT lpRect)
{
    SECFrameWnd::OnSizing(nSide, lpRect);

    CRect curRect;
    MoveWindow(lpRect,false);
    Invalidate();
    ::SendMessage(m_hWnd,WM_NCPAINT,1,0);
//    ::SendMessage(m_hWnd,WM_ERASEBKGND,(UINT)GetDC(),0);

    POSITION pos = m_listControlBars.GetHeadPosition();
    while(pos != NULL)
    {
        SECCustomToolBar* pBar = (SECCustomToolBar*)m_listControlBars.GetNext(pos);
        if(ISA(pBar,SECCustomToolBar))
        {
            pBar->GetWindowRect(&curRect);
            ScreenToClient(&curRect);
            ValidateRect(&curRect);
        }
    }
}


Окошки за главным окном портятся и не восстанавливаются. Хотя своей цели я добиваюсь. Т.е. тулбары не мерцают при ресайзинге.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.