• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 351
  • Last Modified:

Converting logic to device coordinates

I want to set center of coordinate system device to center of client device. Then I want to draw line to point where I click with mouse on client device. Under this is code of my program. Can You explain me where I make logical error?

Thank you and sorry for my bad english!


void CShowStringView::OnLButtonUp(UINT nFlags, CPoint point)
{
      CClientDC dc(this);
      int c = dc.SetMapMode(MM_LOMETRIC);
      CRect rc;
      GetClientRect(rc);
      
      
      CPoint p1(rc.right/2,rc.bottom/2);
      SetViewportOrgEx ( dc, p1.x,p1.y, NULL);
      OnPrepareDC(&dc);
      
      CPoint p(0,0);
      dc.LPtoDP(&p);
      dc.MoveTo(p);
      dc.LineTo(point);
      CPoint a = dc.GetViewportOrg();
      dc.DPtoLP(&a);

        CView::OnLButtonUp(nFlags, point);
}
0
avram032300
Asked:
avram032300
1 Solution
 
RONSLOWCommented:
just do it all in client coordinates (which is what comes in to LButtonUp) ie. like this:

void CShowStringView::OnLButtonUp(UINT nFlags, CPoint point)
{
  CRect rc;
  GetClientRect(rc);
  CPoint p1(rc.right/2,rc.bottom/2);
  CClientDC dc(this);
  dc.MoveTo(p1);
  dc.LineTo(point);
  CView::OnLButtonUp(nFlags, point);
}
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Upgrade your Question Security!

Your question, your audience. Choose who sees your identity—and your question—with question security.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now