现在建立了一个带有滑动条的文档视图结构的程序,并打开一幅图片,现在需要点击图片上的一点,并以图片左上顶点为原点获得这个点的坐标,
目前的问题是,现在图像太大,加入滚动条之后,再点击,用CPoint得到的是该点位于屏幕上的坐标,请问应该如何换算成基于图像左上顶点为原点的坐标呢?
滚动条是以如下方法添加的:
void CCRITView::OnInitialUpdate()
{
CScrollView::OnInitialUpdate();
// TODO: Add your specialized code here and/or call the base class
CClientDC dc(this);
int m_nCellWidth = dc.GetDeviceCaps(LOGPIXELSX);
int m_nCellHeigh = dc.GetDeviceCaps(LOGPIXELSY) / 4;
int m_nRibbonWidth = m_nCellWidth / 2;
int nWidth = (26 * m_nCellWidth) + m_nRibbonWidth;
int nHeight = m_nCellHeigh * 100;
SetScrollSizes(MM_TEXT,CSize(nWidth,nHeight));
}谢谢!
目前的问题是,现在图像太大,加入滚动条之后,再点击,用CPoint得到的是该点位于屏幕上的坐标,请问应该如何换算成基于图像左上顶点为原点的坐标呢?
滚动条是以如下方法添加的:
void CCRITView::OnInitialUpdate()
{
CScrollView::OnInitialUpdate();
// TODO: Add your specialized code here and/or call the base class
CClientDC dc(this);
int m_nCellWidth = dc.GetDeviceCaps(LOGPIXELSX);
int m_nCellHeigh = dc.GetDeviceCaps(LOGPIXELSY) / 4;
int m_nRibbonWidth = m_nCellWidth / 2;
int nWidth = (26 * m_nCellWidth) + m_nRibbonWidth;
int nHeight = m_nCellHeigh * 100;
SetScrollSizes(MM_TEXT,CSize(nWidth,nHeight));
}谢谢!
解决方案 »
- 求个好的计算机专业毕业设计题目。
- 帮我分析一个简单的程序
- 怎样通过窗口句柄获得窗口内容?
- VC6中,大家一般如何获取user在画面Edit Box里 key in的浮点数?
- 有没有截图直接就是JPG的,不用通过BMP压缩转换呢;
- 如何在VC++中调用已经编译成sav的IDL模块中的程序?
- 怎样用钩子作鼠标按键延迟相应?解决高分
- 谁能提供xml与数据库通过ODBC,互相转换的VC代码例子(最好是xml类的实现代码)???
- PeekMessage与SendMessage用法不一样??
- 怎样使用类的成员函数启动一个线程?
- 几个MFC的问题
- 这回真的遇到问题了:CDockablePane的x按钮关闭事件截获问题
{
CClientDC dc(this);
OnPreoneDC(&point)point的X,Y分别减去图片在客户区的左上角坐标就是在图片上的坐标
}
CClientDC dc(this);
OnPrepareDC(&dc);
dc.DPtoLP(&point);
就可以了。