MFC拆分窗口,如何点击菜单在其中一个子View类响应画图函数
MFC的单文档程序,我将窗口静态拆分成了4部分,在其中一个子窗口使用的MyView类,在MyView类中我已经画了坐标和窗格,也写了一个画直线的函数DrawLine,现在...
MFC的单文档程序,我将窗口静态拆分成了4部分,在其中一个子窗口使用的MyView类,在MyView类中我已经画了坐标和窗格,也写了一个画直线的函数DrawLine,现在要在菜单栏建立一个菜单ID_DRAW,点击之后能够调用MyView的那个DrawLine在MyView类中画出直线。我之前在MyView中响应ID_DRAW的COMMAND命令,但是要将鼠标选中MyView类的那个子窗口画线的那个菜单才是可用的,并且也能在用DrawLine画图。我现在想要实现不需要选择子窗口就能是菜单按钮可用并且能够在MyView的那个子窗口画出直线。
展开
1个回答
展开全部
删除当前消息响应函数(View类的),重新在主框架窗口MainFrame建立消息响应函数。
新的响应函数中,通过以下几个函数获取MyView类指针,并画线。
GetActiveDocument
GetFirstViewPosition
GetNextView
新的响应函数中,通过以下几个函数获取MyView类指针,并画线。
GetActiveDocument
GetFirstViewPosition
GetNextView
更多追问追答
追问
我试了几次获得指针好像不对,我的View类在拆分窗口的(1,0)位置,能给我具体的代码么
追答
具体要根据你的类名。
大致代码如下,作为框架窗口的成员函数,需要根据你的实际情况调整:
CView * CMainFrame::GetMyView()
{
CView *pView;
CDocument *pDoc=GetActiveDocument();
POSITION pos = pDoc->GetFirstViewPosition();
while (pos != NULL)
{
pView = pDoc->GetNextView(pos);
if (pView->IsKindOf(RUNTIME_CLASS(CMyView))))
{//找到指定类型的窗口,返回指针
return pView;
}
}
return NULL;
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询