急!!!MFC中如何获取鼠标相对坐标

急!!!MFC中如何获取鼠标相对坐标,第1张

参考一下

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的话拿到的坐标直接就是相对你上面那个红点相对左上红点的坐标了

对话框坐标可以使用GetWindowRect获取。

鼠标坐标一般在OnMouseMove里面通过参数获取。

这个最好有具体需求描述,因为获取方式很多,用于不同的窗口和不同的需要。

用mfc中的CArchive可以一次读入一行,每次读入的就是一个字符串。再对这个字符串进行解析,分别获取表示三个数值的子串,再讲子串经过ctoa的转换变成具体的数值,那就是X,y,z的三维坐标值了。接下来想怎么处理就是你怎么写运算表达式的问题了。

可以读一行处理一行,也可以将整个文件内容一次性读入内存,放到数组或者链表中来处理。

用记事本打开工程目录下的rc文件

搜索你的控件ID,里面有记录

以编辑框为例,搜索IDC_EDIT1找到如下文字

EDITTEXT IDC_EDIT1,64,24,55,15,ES_AUTOHSCROLL

里面64,24是指控件左上角相对窗口左上角的座标,

55,15,是指控件的宽高

修改这里的数字,改成你想要的值,然后重新打开工程就行了

至于究竟要修改成多少,可以目测,也可以下载个电脑尺(JRuler)量一量

你要输出到哪里?如果只是输出调试信息,那么直接:

TRACE(TEXT("OnLButtonDown:(%d,%d)\n"),pointx,pointy);

即可。

如果要d出消息框,那就:

CString str;

strFormat(TEXT("%d,%d"),pointx,pointy);

AfxMessageBox(str);

设置两个全局的坐标类 CPoint pOld和pCurrent 分别记录上一次按下左键时候的坐标和当前点的坐标,程序初始化的时候pOld = pCurrent ;

void CPenDlg::OnLButtonDown(UINT nFlags, CPoint point)

{

pCurrent = point;

//你的画线代码

pOld = pCurrent;

CDialog::OnLButtonDown(nFlags, point);

}

以上就是关于急!!!MFC中如何获取鼠标相对坐标全部的内容,包括:急!!!MFC中如何获取鼠标相对坐标、C++ 或MFC 如何实现 bmp图片上点击一点 获取该点图像坐标 不是屏幕坐标 要例子、C++ MFC 如何获得dialog的坐标或者鼠标的相对坐标等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9869703.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-02
下一篇2023-05-02

发表评论

登录后才能评论

评论列表(0条)

    保存