다음 사람을 C#과 동등한 것으로 번역 할 수 있습니까? mapPicture는 GDI 코드의 그림 개체이지만 C#의 패널입니다. 다음과 같이 내가 코드를 수행 한 ,C# + GDI 코드와 동일한 코드
원래 MFC 코드, 내가 지금까지했던
CDC *dc = mapPicture.GetDC();
CRect maprect;
mapPicture.GetClientRect(&maprect);
CPen pen,*oldpen;
dc->Rectangle(&rect);
pen.CreatePen(PS_SOLID,1,RGB(0,0,0));
oldpen=dc->SelectObject(&pen);
dc->SetMapMode(MM_LOMETRIC);
CPoint b1=dc->SetViewportOrg(25,rect.Height()-25);
dc->SetTextColor(RGB(0,0,0));
dc->MoveTo(0,0);
dc->LineTo((2*rect.right - 60),0);
dc->MoveTo(0,0);
dc->LineTo(0,2*rect.bottom);
dc->MoveTo((2*rect.right - 60)-15,8);
dc->LineTo((2*rect.right - 60),0);
dc->LineTo((2*rect.right - 60)-15,-8);
dc->SetTextAlign(TA_RIGHT|TA_BOTTOM);
dc->TextOut((2*rect.right - 55),-55,"X");
C# 코드,
myPen = new Pen(Color.Black, 1);
formGraphics = mapPicture.CreateGraphics();
Rectangle rect = mapPicture.ClientRectangle;
formGraphics.PageUnit = GraphicsUnit.Millimeter;
formGraphics.TranslateTransform(25, rect.Height - 25);
formGraphics.DrawLine(myPen, 0, 0, (2 * rect.Right - 60), 0);
formGraphics.DrawLine(myPen, 0, 0, 0, 2 * rect.Bottom);
formGraphics.DrawLine(myPen, (2 * rect.Right - 60) - 15, 8, (2 * rect.Right - 60), 0);
formGraphics.DrawLine(myPen, (2 * rect.Right - 60), 0, (2 * rect.Right - 60) - 15, -8);
SolidBrush drawBrush = new SolidBrush(Color.Black);
Font drawFont = new Font("Microsoft Sans Serif", 9);
formGraphics.DrawString("X", drawFont, drawBrush, (2 * rect.Right - 55), -55);
(http://www.pinvoke.net/default.aspx/gdi32/SetMapMode.html에서 복사)
? 여러분이이 질문에 답한 것처럼 코드 검토를 요구하는 것처럼 보입니다. –
문제가있는 부분에 대해 좀 더 자세히 설명해 주시겠습니까? 작동하지 않는 것, 나타나지 않는 것 등 – TJB
아직 실제로 테스트하지는 않았지만 C#에서 SetMapMode 및 SetViewportOrg와 동일한 기능을 확인하고 싶습니다. 내가 제대로했는지 확신 할 수 없어! – nixgadgets