为此,如何获得控件在对话框上的坐标是关键问题。编写了如下的测试小程序,目的是将两个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)
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)