MFC如何获取控件在对话框上的位置坐标

MFC如何获取控件在对话框上的位置坐标,第1张

要实现这样的效果需要知道相似位置在这两幅图中的坐标以及这两个控件对话框上的坐标,然后通过加减运算就可以得到图像上的相似区域在对话框的坐标,直接将这两个坐标用直线连接就可以了。

为此,如何获得控件在对话框上的坐标是关键问题。编写了如下的测试小程序,目的是将两个picture控件中的点用直线连接起来,比较直观的是picture控件的四个角,所以程序中是将控件的拐角连接起来。首先在对话框上并排放置两个同样大小的picture控件,将他们的标识分别设成IDC_LEFT和IDC_RIGHT,然后添加两个编辑框用于显示picture控件的大小,给这两个编辑框添加相应的数据成员m_row和m_colume。添加一个按钮用于连接picture控件中的点,为这个按钮添加

成员函数

OnMatch()

void

CControlDlg::OnMatch(){//

TODO:

Add

your

control

notification

handler

code

here

CRect

rectL,rectR

可做如下修改。

void CDATAView::OnMouseMove(UINT nFlags, CPoint point) 

{

    // TODO: Add your message handler code here and/or call default

    CClientDC dc(this) //获取设备

    OnPrepareDC( &dc ) //准备设备

    dc.DPtoLP( &point ) //完成转换

    

    //可以给 主窗口发送消息,在主窗口是设置 状态栏提示。

    

    char p[20]

    CStatusBar *pStatus=(CStatusBar *)AfxGetMainWnd()->GetDescendantWindow(AFX_IDW_STATUS_BAR)

    sprintf(&p[0],"x=%d  y=%d",point.x,point.y)

    pStatus->SetPaneText(pStatus->CommandToIndex(ID_INDICATOR_MOUSEPOS),&p[0])

    CView::OnMouseMove(nFlags, point)

}


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

原文地址: http://outofmemory.cn/yw/12197170.html

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

发表评论

登录后才能评论

评论列表(0条)

保存