关于CSplitterWnd的一个问题,急!

wutooo 2008-04-09 09:10:03
用CSplitterWnd分割成两个窗口后(mainview,largeview),想要实现这样一个功能:对mainview里已经显示的图片,执行onmousemove(UINT nFlags, CPoint point)后,想在largeview里显示局部放大的且随着鼠标移到而不断变化的图,现在的问题是:对于largeview而言,不知怎么得到mainview的实时的CPoint坐标呢?或者还有其他的能实现这种功能的方法? 谢谢!
...全文
123 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
meiZiNick 2008-05-01
  • 打赏
  • 举报
回复
接分是王道!
wutooo 2008-04-10
  • 打赏
  • 举报
回复
我上面就是这样做的啊,FindWindow()函数出了问题,不知咋整
hityct1 2008-04-10
  • 打赏
  • 举报
回复
使用自定义消息可以的。在OnMouseMove内,用SendMessage,鼠标位置作为参数传递过去。
wutooo 2008-04-10
  • 打赏
  • 举报
回复
顶一下~
wutooo 2008-04-10
  • 打赏
  • 举报
回复
谢谢tian兄,不过似乎即使得到Mainview窗口的指针,也得不到实时的cpoint值吧;根据yxz_lp的提示,本人是这样写的:

void CMainView::OnMouseMove(UINT nFlags, CPoint point)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
HWND HWnd=::FindWindow(CLargeview,NULL);
::SendMessage(HWnd,WM_MOUSEMOVE,0,MAKELPARAM(point.x,point.y));
CView::OnMouseMove(nFlags, point);
}

其中CLargeview为那个用于放大图像的窗口类(class CLargeview : public CFormView);

然后再在Largeview.cpp的OnDraw()里添加接受Message的代码:
::DefWindowProc(?,WM_MOUSEMOVE,0,MAKELPARAM(point.x,point.y))

编译后,FindWindow()第一个参数出了问题,不知怎么的到CLargeview的窗口句柄,还有不知以上的想法是否可行呢,请各位指点!见笑~~
tianloveyou 2008-04-10
  • 打赏
  • 举报
回复
((Cmainview*)((CMainFrame*)::AfxGetApp()->m_pMainWnd)->m_Splitter.GetPane(0,0))->
可通过这个,获取第一个窗口的指针.再利用成员函数及相关函数.就可获得图片的大小及坐标了
菜牛 2008-04-09
  • 打赏
  • 举报
回复
通过文档的UpdateAllViews实现两个位图的通讯。
yxz_lp 2008-04-09
  • 打赏
  • 举报
回复
SendMessage()
PostMessage()
都可以呀
wutooo 2008-04-09
  • 打赏
  • 举报
回复
信息yxz_lp兄,不过“以消息的形式”是怎么实现呢?见笑~~~
yxz_lp 2008-04-09
  • 打赏
  • 举报
回复
在mainview鼠标取得矩形位置相对于图片的矩形坐标,以消息的形式发送给largeview,largeview根据这个坐标显示局部
图片。
scq2099yt 2008-04-09
  • 打赏
  • 举报
回复
up

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧