int x=GetSystemMetrics(SM_CXSCREEN);得到x坐标
int y=GetSystemMetrics(SM_CYSCREEN);得到y坐标
(x/2 y/2) 就是 屏幕中心的坐标
此方法就是得到屏幕的分辨率。右下角的 坐标 就是 当前分辨率的值。
参考一下
point
是相对CLYHchxuView的坐标
如果你要获的是相对CLYHchxuView左上角的坐标
就不需要转换
如果你你要获的是相对程序主窗口左上角的坐标
可以这样算
void CLYHchxuView::OnLButtonDblClk(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
CRect rc;
GetParent()->GetWindowRect(&rc);
ClientToScreen(&point);
docx=pointx-rcleft;
docy=pointy-rctop;
Invalidate();
CView::OnLButtonDblClk(nFlags, point);
}
自己用几行代码转换一下不麻烦吧?的位置和大小应该是已知的吧。程序中坐标原点是左上角你也知道,想要以某个点位坐标原点,将坐标系整体移到中的某个位置很难么?坐标系这东西还不是你自己定义的么。
那个bmp这样看的话也是一个窗口
GetWindowRect 获取bmp窗口的矩形,其中左上就是你那个红点
ScreenToClient 把左上的坐标送进去,hwnd用你上面那个test dis demo窗口的句柄,获取相对坐标
另:在上点击一点是啥,响应WM_LBUTTONDOWN函数吗,在TestDisDemo里响应WM_LBUTTONDOWN的话拿到的坐标直接就是相对你上面那个红点相对左上红点的坐标了
简单的办法是调用
GLT
ZPR,它支持
Zoom,
Pan
and
Rotate
的 *** 作,可以从鼠标坐标获得
OpenGL
点的3维坐标。
把
GLT
ZPR
的源程序
zprc
和
zprh
加入到你的程序中
一起编译
就可使用。
程序可以从网上找到。
我不能在这里给你地址。因为通常给了地址,我的回答就贴不上来,或你就看不到(只允许我自己看)回答,或隔几年后你才能看到这个回答。
ZPR
的窍门
是
对每个空间点,加了一个
id,
ZPR按
点的远近,得到鼠标最接近的点的id,
从
id
得到
3维坐标。程序例子提供源码的地方同时给了。
自己搜关键字
gltzpr
或
GLT
ZPR
可得。
首先在视图类(或框架类)中添加一个CPoint m_pt的成员变量,然后在视图类中添加鼠标左击消息处理WM_LBUTTONDOWN即为:
void CMy48View::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
m_pt=point;
CView::OnLButtonDown(nFlags, point);
}这样就将鼠标左键的点保存在m_pt中了
以上就是关于VC++(MFC)怎样获得输出屏幕的右下角和中心的坐标全部的内容,包括:VC++(MFC)怎样获得输出屏幕的右下角和中心的坐标、急!!!MFC中如何获取鼠标相对坐标、用MFC在做电子地图的训练,现在需要在窗口中加载一张图片作为地图,如何划定区域和建立坐标系等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)