标签:tcl 修改 code span map window oid mod 处理程序
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表示垂直方向逻辑坐标的范围
当改变窗口大小时,以窗口的宽度或高度较小的方向为标准
标签:tcl 修改 code span map window oid mod 处理程序
原文地址:https://www.cnblogs.com/zuoyou151/p/10108557.html