我之前有一个模仿cad的程序,能在状态栏显示鼠标当前的坐标。今天我分割了原来的窗口,也就是有两个视图类了。
这个显示坐标的功能就无效了。
我测试过移动鼠标时下面的代码还是会运行的。但就是没效果。void CminicadView::OnMouseMove(UINT nFlags, CPoint point)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
CString str;
str.Format (_T("x=%d,y=%d"),point.x,point.y);
((CMainFrame *)GetParent())->SetMessageText (str);
CScrollView::OnMouseMove(nFlags, point);
}
这个显示坐标的功能就无效了。
我测试过移动鼠标时下面的代码还是会运行的。但就是没效果。void CminicadView::OnMouseMove(UINT nFlags, CPoint point)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
CString str;
str.Format (_T("x=%d,y=%d"),point.x,point.y);
((CMainFrame *)GetParent())->SetMessageText (str);
CScrollView::OnMouseMove(nFlags, point);
}
解决方案 »
- 窗口回调函数的参数为啥还有hwnd句柄呢 这个句柄不是肯定是自己吗
- WEB访问C++的程序 单线程内怎么保持多个WEB访问互斥
- 利用ado向数据库插入大量数据,怎样做速度才快呢?
- GetProcAddress中函数明加'_T'之后无法获取,GetLasterError为127
- 有关背景颜色的两个问题
- 怎样使树控件失去焦点时被选中的节点还处于高亮的显示状态(蓝底白色)?
- 由于本人的毕业设计是模式识别方向,哪位知道有好的模式识别的书介绍几本
- 如何使一个程序每天定时运行?
- 请问如何隐藏驱动器?
- WS_OVERLAPPED应该如何理解?
- vs2008sp1获取主菜单的问题
- 调用DLL中含CStringArray参数方法的奇怪问题
((CMainFrame *)GetParent())? 你确定CminicadView的父窗口是CMainFrame吗?不如该为直接获取框架窗口指针
class CDlgFKHT : public CFormView当前视图的父窗体是 分割视图窗体,所以先得弄到 CSplitterWnd 的指针
然后可以的到其他视图的指针,或者GetParent()的到更上层的窗体,比如CChildFrame CMySpl* pSpl=(CMySpl*)this->GetParent();
CDlgFKHT* pDlg=(CDlgFKHT*)pSpl->GetPane(0,0);
{
CString str;
str.Format("(%d, %d)", point.x, point.y);
CStatusBar* pStatusBar=(CStatusBar*)AfxGetMainWnd()->GetDescendantWindow(AFX_IDW_STATUS_BAR);
pStatusBar->SetPaneText(0, str); CView::OnMouseMove(nFlags, point);
}
((CMainFrame *)GetParent())->SetMessageText (str);
改为
((CMainFrame *)::AfxGetMainWnd())->SetMessageText (str); 起始你的GetParent()取得是CSplitterWnd窗体