请教,VC的窗口与视口的问题,以下是我的部分程序段
CRect rect;
GetDlgItem(IDC_STATIC1)->GetWindowRect(&rect);//得到静态控件的区域
dXYRatio=p_Doc->m_dLengthy/p_Doc->m_dLengthx; //这个是我算的XY的比值 我的X=400Y=400
int top,left,right,bottom;
left=rect.left+20;
right=rect.right-20;
double dtemptb; //工作台幅面的长宽协调
dtemptb=(((rect.bottom-80)-(rect.top-10))-((rect.bottom-80)-(rect.top-10))*dXYRatio)/2.0;
top=(int)(rect.top-10+dtemptb);
bottom=(int)(rect.bottom-80-dtemptb); dc.MoveTo(left,top);
dc.LineTo(right,top);
dc.LineTo(right,bottom);
dc.LineTo(left,bottom);
dc.LineTo(left,top); //以上这段就是按XY画的一个矩形
dc.SetMapMode(MM_ISOTROPIC);
dc.SetViewportOrg(left,bottom); //我把原点设置为我这个矩形的左下角现在,如果我要在上面作图,我画个200*200的矩形,显示的就不是和我之前画的矩形曾比例!
我应该如何去做?
CRect rect;
GetDlgItem(IDC_STATIC1)->GetWindowRect(&rect);//得到静态控件的区域
dXYRatio=p_Doc->m_dLengthy/p_Doc->m_dLengthx; //这个是我算的XY的比值 我的X=400Y=400
int top,left,right,bottom;
left=rect.left+20;
right=rect.right-20;
double dtemptb; //工作台幅面的长宽协调
dtemptb=(((rect.bottom-80)-(rect.top-10))-((rect.bottom-80)-(rect.top-10))*dXYRatio)/2.0;
top=(int)(rect.top-10+dtemptb);
bottom=(int)(rect.bottom-80-dtemptb); dc.MoveTo(left,top);
dc.LineTo(right,top);
dc.LineTo(right,bottom);
dc.LineTo(left,bottom);
dc.LineTo(left,top); //以上这段就是按XY画的一个矩形
dc.SetMapMode(MM_ISOTROPIC);
dc.SetViewportOrg(left,bottom); //我把原点设置为我这个矩形的左下角现在,如果我要在上面作图,我画个200*200的矩形,显示的就不是和我之前画的矩形曾比例!
我应该如何去做?
解决方案 »
- 远线程DLL发送消息问题。。
- 点击某个菜单后,当鼠标移动到别的菜单,如何让该菜单自动弹出?正如VC的菜单模式一样!
- WM_CHAR用来输入中文时的问题?请帮忙啊~~~
- 关于MSDN的问题
- 各位大侠进来看看。
- XP下VS2005开发的MFC程序,到了win7下就无法运行?
- 怎样设置COM+组件 才能让客户端匿名调用服务器上的组件!
- 一个关于ComboBox控件的问题!急!!!谢谢!
- mfc程序打包安装时的问题,dll依耐项在安装时,360提示修改关键程序dll
- 重金求解,我在win2000下用VC6.0写了一个词法分析器,debug版本运行一切正常,但是release版本到处有问题,请各位超虾给出解答,我出149分哦!!!
- 关于strlen和strcpy的错误
- 如何从RC资源中得到一个FILE*指针?
改了MapMode 视口范围却没改
SetViewportExt