关于CSplitterWnd的一个问题,急!

wutooo 2008-04-09 09:10:03
用CSplitterWnd分割成两个窗口后(mainview,largeview),想要实现这样一个功能:对mainview里已经显示的图片,执行onmousemove(UINT nFlags, CPoint point)后,想在largeview里显示局部放大的且随着鼠标移到而不断变化的图,现在的问题是:对于largeview而言,不知怎么得到mainview的实时的CPoint坐标呢?或者还有其他的能实现这种功能的方法? 谢谢!
...全文
97 点赞 收藏 11
写回复
11 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
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
回复
相关推荐
发帖
界面
创建于2007-09-28

1.5w+

社区成员

VC/MFC 界面
申请成为版主
帖子事件
创建了帖子
2008-04-09 09:10
社区公告
暂无公告