zoukankan      html  css  js  c++  java
  • MFC改变坐标系

    1.在MainFrm中的PreCreateWindow中设置默认窗口大小

    BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
    {
        if( !CFrameWndEx::PreCreateWindow(cs) )
            return FALSE;
        // TODO: 在此处通过修改
        //  CREATESTRUCT cs 来修改窗口类或样式
        //设置默认窗口大小为400pixel*300pixel
        cs.cx = 400;
        cs.cy = 300;
        return TRUE;
    }

    2.在View类中添加OnPaint()消息处理函数

    void C透视投影View::OnPaint()
    {
        CPaintDC dc(this); // device context for painting
                           // TODO: 在此处添加消息处理程序代码
                           // 不为绘图消息调用 CView::OnPaint()
        OnPrepareDC(&dc);
        OnDraw(&dc);
        CRect rc;    //矩形结构
        GetClientRect(&rc);     //获得窗口库视区
        int cx = rc.right;
        int cy = rc.bottom;
        dc.SetMapMode(MM_ISOTROPIC);    //X=Y
        dc.SetWindowExt(1000, 1000);    //设置逻辑窗口,默认窗口原点为(0,0)
        dc.SetViewportExt(cx, -cy);     //定义输出视口,X右Y上为正
        dc.SetViewportOrg(cx / 2, cy / 2);//定义视口原点为客户区中心
        dc.Ellipse(-500, 500, 500, -500); //绘制椭圆与客户去外接的椭圆
        //绘制水平垂直的四条半径
        dc.MoveTo(0, 0);
        dc.LineTo(500, 0);
        dc.MoveTo(0, 0);
        dc.LineTo(0, 500);
        dc.MoveTo(0, 0);
        dc.LineTo(0, -500);
        dc.MoveTo(0, 0);
        dc.LineTo(-500, 0);
    }

     MM_ISOTROPIC:逻辑单位被映射为具有等刻度轴的任意单位,x轴上的一个单位被映射为

                                   y轴上的一个单位。

    SetWindowExt(int cx,int cy):cx表示水平方向逻辑坐标的范围

                                                   cy表示垂直方向逻辑坐标的范围

                                                   当改变窗口大小时,以窗口的宽度或高度较小的方向为标准

  • 相关阅读:
    javascript通用函数库
    Nginx的负载均衡的那点事
    四种多服务器共享session的方法
    Nginx 配置文件nginx.conf的完整配置说明<转>
    Struts2标签问题-using Struts tags without the associat
    转:ibatis的cacheModel
    大型互联网网站架构心得之一
    nginx的upstream(解决session问题)
    rails3项目解析之1——系统架构
    使用 Nginx 提升网站访问速度
  • 原文地址:https://www.cnblogs.com/zuoyou151/p/10108557.html
Copyright © 2011-2022 走看看