程序如下:
void CGraphView::OnDraw(CDC* pDC)
{
m_rect.SetRect(0,0,980,670);//m_rect:画图使用的矩形大小
pDC->SetMapMode(MM_LOENGLISH);
DrawPhoto(pDC);//在m_rect矩形中画图
}
都是xp机器,平面分辨率都是1024*768
显示结果为什么却是不一样呢?跟什么有关?
请执教
原因正确验证后,立即揭帖!
void CGraphView::OnDraw(CDC* pDC)
{
m_rect.SetRect(0,0,980,670);//m_rect:画图使用的矩形大小
pDC->SetMapMode(MM_LOENGLISH);
DrawPhoto(pDC);//在m_rect矩形中画图
}
都是xp机器,平面分辨率都是1024*768
显示结果为什么却是不一样呢?跟什么有关?
请执教
原因正确验证后,立即揭帖!
解决方案 »
- 请教内存位图的无法输出问题
- 怎么实现trace
- 请问如何VC中如何动态使用ActiveX控件?
- 我打开一个文档后,用户编辑,能否在用户刚刚开始编辑时候,我就知道用户编辑了,然后给出一定的状态信息?
- 如何设置对话框的第一次显示位置?
- ■■■有人知道LPC线性预测编码算法■■■
- 请问怎样将英文源码,在vc6.0中改成中文版的~~~?
- 麻烦!麻烦!(传输两个结构体)高手们快来帮小弟一把
- VC中按钮只有单击双击事件,怎样实现VB中的鼠标DOWN Up 事件? 急!!!先行谢过!真的很急用,请大家一定帮忙!
- 你们说如何从MSDN中找到所需的东东呢?
- 关于将View的内容保存为位图
- 真倒媚又一个不知道的。
::GetWindowRect(this->GetSafeHwnd(),&m_rect);
m_rect = (46,713,0,1024);
差不多就是真个屏幕(上面是工具条,下面是状态条)
可是我在CPoint(1120,-33)上写字,在视图上都可以看到,奇怪原因可能是什么呢?不解ING
或者该怎样做?
会不会更模式转换SetMapMode有关呢!
SetMapMode这个函数也不是很明白,谁能讲一下吗?主要是用途
Each logical unit is converted to 0.01 inch. Positive x is to the right; positive y is up
可能就是这里出的问题。不过还是有点奇怪。我的意思是你在不同的机器上都看看窗口的大小。
MM_LOENGLISH采用英寸为单位。每单位1/100英寸。Y轴方向是从下往上为正,你的程序中原点应该还在屏幕左上角,所以纵坐标全部为负数。而且用的数值我猜是想用是以像素为单位。可以以显示器表面的物理尺寸乘以每0.1英寸的单位数(10),然后再除以254就得到窗口宽度了