Создал своё класс окошка на котором создаю COM врапер (визуальный компонент) сам компонент перерисовывается, а вот фон моего окошка нет, не знаю как с этим бороться, но наверное есть какой то совсем простой способ
Создание компонента:
CMyWnd::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CWnd::OnCreate(lpCreateStruct) == -1)
return -1;
AfxEnableControlContainer();
m_mapCtrl.Create( NULL, NULL, WS_CHILD|WS_OVERLAPPED|WS_VISIBLE, CRect( 0,0, 0, 0), this, 0 );
return 0;
}
Создание окошка:
BOOL CMyWnd::CreateMap( CWnd* pWnd, const CRect& rect)
{
return this->CreateEx( NULL, NULL, " ", WS_POPUP | WS_CHILD | WS_BORDER | WS_THICKFRAME | WS_VISIBLE, rect, pWnd, 0);
}
А теперь как я пытаюсь закрашивать фон:
void CMyWnd::OnPaint()
{
CBrush backBrush(RGB(0, 128, 128));
CRect rect;
GetUpdateRect( &rect, true );
CPaintDC dc(this);
dc.FillRect( &rect, &backBrush );
}
Фон то так закрашивается, но есть одна проблема: если необходимо часто очищать фон (у меня прописана процедура ресайзинга окна с изменением размера компонента) то видно мерцание.... я пытался сделать через Rng но тут вообще ничего не получается, т.к. GetUpdateRng выдаёт ERROR_RNG...
ну конечно можно вычислять фрагмент который занимает компонент и его вычитать, но это тупо и если компонентов много вообще плохо
плиз, если кто знает, подскажите как сделать грамотную перерисовку фона