Invalidate bei angedockter DialogBar verhindern
-
Ich habe folgendes Problem:
da ich mein hauptfenster sehr oft neu zeichnen muss, ist es lästig wenn jedesmal die DialogBar auch neu gezeichnet wird. vor allem da das in manchen fällen zu fehlern führt, da sie durch das hauptfenster "überzeichnet" wird.meine notlösung sieht so aus:
void CChildFrame::Invalidate(BOOL bErase) { CControlBar * bar; bar=GetControlBar(IDD_MAINBAR); if(bar->IsFloating()==0 && bErase==TRUE) { CRect wndsize; GetWindowRect(&wndsize); CRect dlgbarsize; bar->GetWindowRect(&dlgbarsize); CRgn region; region.CreateRectRgn(0,0,wndsize.Width()-dlgbarsize.Width()-5,wndsize.Height()); CWnd::InvalidateRgn(®ion,TRUE); } else { CWnd::Invalidate(bErase); } }
gibt es da vielleicht eine elegantere lösung, vielleicht irgendeine nachricht abfangen oder sowas in der art