Проблема с ограничением области рисования

Artur1987

Active Member
31.03.2007
31
0
#1
У меня такая проблема: нужно ,чтобы рисовать можно было только на одной половине экрана. Причём в режиме MM_HIMETRIC, но почему-то вообще нигде не рисует.m_workrect - это как раз тот прямоугольник,где можно рисовать,он инициализирован в конструкторе как m_workrect(0,0,20000,-18000).вот код:

Код:
void CProbniyView::[b]OnPrepareDC[/b](CDC* pDC, CPrintInfo* pInfo) 
{
pDC->SetMapMode(MM_HIMETRIC);
CView::OnPrepareDC(pDC, pInfo);
}

void CProbniyView::[b]OnDraw(CDC* pDC)[/b]
{
OnPrepareDC(pDC);
pDC->Rectangle(m_workrect);
}

void CProbniyView::[b]OnMouseMove[/b](UINT nFlags, CPoint point) 
{
CClientDC dc(this);
OnPrepareDC(&dc);
m_workrect.NormalizeRect();
dc.LPtoDP(m_workrect);

if(nFlags && m_workrect.PtInRect(point)) {

dc.Rectangle(0,0,point.x,point.y);
}

CView::OnMouseMove(nFlags, point);
}

В режиме MM_TEXT всё нормально рисует,а в MM_HIMETRIC не хочет. И ещё такой вопрос : как можно проще ограничить область рисования?
 
04.09.2006
2 566
2
#2
<!--QuoteBegin-Artur1987+27:09:2007, 10:45 -->
<span class="vbquote">(Artur1987 @ 27:09:2007, 10:45 )</span><!--QuoteEBegin-->И ещё такой вопрос : как можно проще ограничить область рисования?
[snapback]79742" rel="nofollow" target="_blank[/snapback]​
[/quote]
Открываешь справку по CDC и читаешь раздел Clipping Functions.
И еще, пользуйся тегами кода