MyException - 我的异常网
当前位置:我的异常网» VC/MFC » 子对话框响应WM_MOUSEMOVE消息的有关问题

子对话框响应WM_MOUSEMOVE消息的有关问题

www.MyException.Cn  网友分享于:2013-01-24  浏览:66次
子对话框响应WM_MOUSEMOVE消息的问题
vc++下新建了对话框应用程序,在这个对话框初始化的时再创建一个子对话框,在这个子对话框上显示一张BMP图片。

BOOL CBrownBMPDlg::OnInitDialog()
{
 CDialog::OnInitDialog();

 ................

 //创建子对话框
 m_BrownDlg.Create(IDD_BMPDLG_DIALOG,this);
 CRect rect,framerect;
 m_BrownDlg.GetClientRect(rect);
 
 m_Frame.GetClientRect(framerect);
 m_Frame.MapWindowPoints(this,framerect);
 m_BrownDlg.MoveWindow(framerect);
 m_BrownDlg.ShowWindow(SW_SHOW);

 m_Bmp.SetParent(&m_BrownDlg);
 CRect bmprect;
 m_Bmp.GetClientRect(bmprect);
 m_Bmp.MoveWindow(0,0,bmprect.Width(),bmprect.Height());
 return TRUE;  // return TRUE  unless you set the focus to a control
}


现在我想完成的功能是:在这张图片上移动鼠标,在主对话的俩个EDIT控件上显示鼠标的x,y坐标。


子对话框 消息 WM_MOUSEMOVE vc++

------解决方案--------------------
在子对话框的窗口例程中相应消息
------解决方案--------------------
1.在CBrownBMPDlg上添加WM_MOUSEMOVE消息;
2.在CBrownBMPDlg::OnMouseMove(CPoint pt)
  {
   CString strX;
   CString strY;
    
    strX.Format(_T("%d"),pt.x);
    strY.Format(_T("%d"),pt.y);
    m_editXpt.SetWindowText(strX);//m_edit是CEdit控件的成员变量
    m_editYpt.SetWindowText(strY);
  }


------解决方案--------------------
窗口关系是:
主对话框-》子对话框-》m_bmp
edit x,y             mouse

所以 m_bmp 要 getparent 2次 才 到 主对话框。
------解决方案--------------------
waver601@sohu.com 请在标题注明csdn网友

文章评论

软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有