请教:MFC多文档程序如何避免新建文档的键盘鼠标消息,用SubclassWindow吗

请问:MFC多文档程序如何处理新建文档的键盘鼠标消息,用SubclassWindow吗?
请问:MFC多文档程序如何处理新建文档的键盘鼠标消息,用SubclassWindow吗?

比如新建MFC多文档程序MyApp

其中CMyAppView继承自CView

请问如何处理每个新建文档的键盘鼠标消息?

先谢了

------解决方案--------------------
用向导为CMyAppView加:
void CMyAppView::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值

CWnd::OnChar(nChar, nRepCnt, nFlags);
}

void CMyAppView::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值

CWnd::OnKeyDown(nChar, nRepCnt, nFlags);
}
------解决方案--------------------
文档是收不到键盘鼠标消息的,只有在视图中收到键盘鼠标消息后,用GetDocument取得文档,对文档作相应处理。然后在视图中显示文档。
------解决方案--------------------
同意一木
------解决方案--------------------
你可以看一下《深入浅出MFC》或《VC技术内幕》
------解决方案--------------------
文档类没有窗口,只能接收命令消息,一般消息在视图类中处理。
------解决方案--------------------
你的概念不清楚,
你所说新建的 "文档 "其实是一个子框架加一个视图窗口,它们都是同一个类的实例,如果你的MDI中只有一个文档类的话。所以你的鼠标键盘消息响应就在都在你的视图类中,至于你想分清是在哪个新建的 "文档 "窗口中点击,这点我没有做过,不过我认为可以根据子框加类的标题来区分,因为你新建的每一个新的 "文档 "窗口标题是不一样的,比如鼠标按下消息中
void CXXXXView::OnLButtonDown(UINT nFlags, CPoint point)
{
CChildFrame* pWnd=(CChildFrame*)GetParent();
CString str;
pWnd-> GetWindowText(str);
if(str= "… ")
{
………………
}
else if(str== "... ")
{
……………………
}
else if(str== "... ")
{
……………………
}
}

------解决方案--------------------
上面我说的有点小问题
你所说新建的 "文档 "其实是一个子框架加一个视图窗口,它们都是同一个类的实例,如果你的MDI中只有一个文档类的话
应试是 如果你的MDI中只有一个视图类的话。

SubclassWindows是窗口的子类化,没有必要,用起来更加麻烦
------解决方案--------------------
每个视图类处理自己的消息,互不干扰。视图类的重绘消息都在C...View::OnDraw()或者C...View::OnPaint()中处理。
------解决方案--------------------
up 多文挡 不懂啊
------解决方案--------------------
不要再up了,你根本不需要判断是哪个窗口啊。