MFC拆分窗口,如何点击菜单在其中一个子View类响应画图函数

MFC的单文档程序,我将窗口静态拆分成了4部分,在其中一个子窗口使用的MyView类,在MyView类中我已经画了坐标和窗格,也写了一个画直线的函数DrawLine,现在... MFC的单文档程序,我将窗口静态拆分成了4部分,在其中一个子窗口使用的MyView类,在MyView类中我已经画了坐标和窗格,也写了一个画直线的函数DrawLine,现在要在菜单栏建立一个菜单ID_DRAW,点击之后能够调用MyView的那个DrawLine在MyView类中画出直线。我之前在MyView中响应ID_DRAW的COMMAND命令,但是要将鼠标选中MyView类的那个子窗口画线的那个菜单才是可用的,并且也能在用DrawLine画图。我现在想要实现不需要选择子窗口就能是菜单按钮可用并且能够在MyView的那个子窗口画出直线。 展开
 我来答
bhtzu
2013-10-24 · TA获得超过1.1万个赞
知道大有可为答主
回答量:8088
采纳率:85%
帮助的人:4234万
展开全部
删除当前消息响应函数(View类的),重新在主框架窗口MainFrame建立消息响应函数。
新的响应函数中,通过以下几个函数获取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;
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式