none
MM_TEXT 模式的问题 RRS feed

  • 问题

  • ondraw 中添加如下代码
     pDC->SetMapMode(MM_TEXT);
     pDC->SetWindowOrg(CPoint(-200,-200));
     pDC->SelectStockObject(m_Color);
     pDC->Ellipse(m_rectEllipse);

    又添加了这样的一个函数
    void Ctest1View::OnLButtonDown(UINT nFlags, CPoint point)
    {
     // TODO: Add your message handler code here and/or call default

     CView::OnLButtonDown(nFlags, point);
     if(m_Color==GRAY_BRUSH){
      m_Color=WHITE_BRUSH;
     }else{
      m_Color=GRAY_BRUSH;
     }
     InvalidateRect(m_rectEllipse);
    }
    问题:
    1.MM_TEXT模式不是以x正递加,y负方向递加的吗,为什么我写成pDC->SetWindowOrg(CPoint(100,100)); 只能显示1/4个圆,圆心在原点。
    而改为pDC->SetWindowOrg(CPoint(-200,-200));则显示圆,不是应对没用显示的吗。
    2.pDC->SetWindowOrg(CPoint(-200,-200)); 的时候,点击圆的颜色没有变化。是什么原因,和模式有关系吗?

    2010年2月24日 4:00

答案

  • 我没记错的话OnDraw是用来画自定义标准控件的。而窗口的绘制函数为OnPaint.
    0xBAADF00D
    • 已标记为答案 yanghome 2010年3月3日 7:10
    2010年2月24日 15:57
    版主