Проблемма с BitBlt и MapModе MM_ANISOTROPIC
От: se_zmej Беларусь  
Дата: 28.02.03 17:28
Оценка:
Суть заключается в следующем: в конструкторе окна, где собираемся рисовать, пишем

    Create(NULL,"Graph Window");

    screen_max.x=GetSystemMetrics(SM_CXSCREEN);
    screen_max.y=GetSystemMetrics(SM_CYSCREEN);

    CClientDC DC(this);
    m_memDC.CreateCompatibleDC(&DC);
    m_bmp.CreateCompatibleBitmap(&DC,screen_max.x,screen_max.y);
    m_memDC.SelectObject(&m_bmp);

    m_bkbrush.CreateStockObject(WHITE_BRUSH);
    m_memDC.SelectObject(&m_bkbrush);
    m_memDC.PatBlt(0,0,screen_max.x,screen_max.y,PATCOPY);


Используемые переменные принадлежат классу окна:

public:
    CDC m_memDC;
    CBitmap m_bmp;
    CBrush m_bkbrush;


Кроме конечно глобальной:

    CPoint screen_max;


Далее в OnPaint(), естественно для того же окна пишем

    CPaintDC DC(this);

    m_memDC.SetMapMode(MM_ANISOTROPIC);

    CRect rect;
    GetClientRect(&rect);

    m_memDC.SetWindowExt(200,200);
    m_memDC.SetViewportExt(rect.right-rect.left,-(rect.bottom-rect.top));
    m_memDC.SetViewportOrg(rect.left,(rect.bottom-rect.top)/2);

// Тут чего-нибудь рисуем используя m_memDC

    m_memDC.DPtoLP(&rect);

    DC.BitBlt(0,0,rect.Height(),rect.Width(),&m_memDC,0,0,SRCCOPY);


И в итоге ничего не получается, хотя в режиме MM_TEXT (который по умолчания) все велликолепно. Подскажите plz, как сделать, что бы все ето заработало, может ошибнулся я где?
Заранее благодарен (ну хотя бы за то, что дочитали все это до конца )
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.