MFC坐标与OpenGL坐标转换问题!

xiazhou88 2012-05-15 07:06:35
进入正题:
void CFirstView::OnLButtonUp(UINT nFlags, CPoint point) 
{
// TODO: Add your message handler code here and/or call default
glClearColor(1.0f, 1.0f, 1.0f, 1.0f
glClear(GL_COLOR_BUFFER_BIT glColor3f(0.0f, 1.0f, 0.0f);
glPointSize(10.0);

glBegin(GL_POINTS);
glVertex2f(point.x, point.y);

glEnd();
glFlush();
CView::OnLButtonUp(nFlags, point);
}

我弄了一个鼠标左键的响应,问题是:我在MFC的对话框中点击,但是显示的“点”不在点击的地方?这么解决!
...全文
282 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
pynh111 2012-11-29
  • 打赏
  • 举报
回复
mfc与opengl坐标系不同吧!
xiazhou88 2012-05-16
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 的回复:]
引用 7 楼 的回复:

引用 6 楼 的回复:
opengl的世界坐标是左下角原点,mfc控件好像是左上角原点,x不用变,y需要转换
我写代码的时候还有一个小问题,就是y转换后总是跟实际位置差了5个单位左右,需要手动减去,不知道原因

你的Y坐标这么转换的?
我用另外一种方法解决了,但是代码量太大,想看看你这么解决的!

很简单,就是control.Height-mouse.Y……
[/Quote]
control.Height?
我新手,不懂!
请再详细点!
libralibra 2012-05-16
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]

引用 6 楼 的回复:
opengl的世界坐标是左下角原点,mfc控件好像是左上角原点,x不用变,y需要转换
我写代码的时候还有一个小问题,就是y转换后总是跟实际位置差了5个单位左右,需要手动减去,不知道原因

你的Y坐标这么转换的?
我用另外一种方法解决了,但是代码量太大,想看看你这么解决的!
[/Quote]
很简单,就是control.Height-mouse.Y
只是这个mouse.Y是控件内的相对坐标,要从获得的屏幕坐标根据control.Top和control.Left转化一次
所以流程就是:
鼠标的屏幕坐标->控件内相对坐标->opengl世界坐标
xiazhou88 2012-05-16
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
看你的代码不是对话框的啊
[/Quote]
就是MFC最简单的“单文档”窗口,在这个窗口点击的时候,点击的坐标与该窗口显示的点,不在一个坐标!该如何解决!
xiazhou88 2012-05-16
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]
opengl的世界坐标是左下角原点,mfc控件好像是左上角原点,x不用变,y需要转换
我写代码的时候还有一个小问题,就是y转换后总是跟实际位置差了5个单位左右,需要手动减去,不知道原因
[/Quote]
你的Y坐标这么转换的?
我用另外一种方法解决了,但是代码量太大,想看看你这么解决的!
libralibra 2012-05-16
  • 打赏
  • 举报
回复
opengl的世界坐标是左下角原点,mfc控件好像是左上角原点,x不用变,y需要转换
我写代码的时候还有一个小问题,就是y转换后总是跟实际位置差了5个单位左右,需要手动减去,不知道原因
xiazhou88 2012-05-16
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]
CRect rect;
GetClientRect(&rect);

x=point.x;
y=rect.Height()-point.y;

绘制点(x,y)

你看这样行不行
[/Quote]
不行哟!
little_angel 2012-05-16
  • 打赏
  • 举报
回复
CRect rect;
GetClientRect(&rect);

x=point.x;
y=rect.Height()-point.y;

绘制点(x,y)

你看这样行不行
  • 打赏
  • 举报
回复
看你的代码不是对话框的啊

19,469

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧