Alexander_Learner 2015-11-22 14:49 采纳率: 0%
浏览 4256

VC/MFC 单文档工程,如何动态创建CFormView并显示出来?

大家好。我问这个问题,是经过独立思考的。想通过好心人回答,彻底解决。

我有个基于单文档的程序,我想在菜单响应函数中,动态去创建CFormView并显示。
1我添加了继承CFormView的自定义类,并把无框的对话框资源,在CFormView构造函数中传递了IDD_资源进去。
2 在菜单响应函数中,我写了如下代码,去创建CFormView:
CCreateContext context;
context.m_pNewViewClass=RUNTIME_CLASS(CFormView的继承类);

问题是,上面这两行代码,动态创建了CFormView了么?如果要想把CFormView的无框界面显示出来,接下来需要写那几行代码?ShowWindow呢?还是update?
请前辈帮我想分析分析,哪几行代码是创建,而且要显示,怎么接下来去写?

  • 写回答

3条回答 默认 最新

  • hanyangtian 2015-11-22 15:17
    关注

    单文档工程建立后默认只有一个CFormview类,动态创建比较麻烦。
    可以在CFormview动态添加对话框,先在cformview添加一个IDSTATIC1,然后添加一个IDDIALOG1对话框资源,属性:border->none;style->child。
    然后给对话框资源添加CDialog1类。
    然后在CformView中添加OnMenu的菜单消息。
    OnMenu()
    {
    CDialog1 m_dlg;

     CRect rs;  //定义位置类对象
            m_dlg.Create(IDDIALOG1,GetDlgItem(IDSTATIC1));
    
            //获得客户区大小
            this->GetDlgItem(IDSTATIC1)->GetClientRect(&rs);
    
            //调整子对话框在父窗口中的位置 
            rs.top+=0;
            rs.bottom-=0;
            rs.left+=0;
            rs.right-=0;
            m_dlg.MoveWindow(&rs);
            m_dlg.ShowWindow(TRUE);
    

    }

    评论

报告相同问题?

悬赏问题

  • ¥30 求解达问题(有红包)
  • ¥15 请解包一个pak文件
  • ¥15 不同系统编译兼容问题
  • ¥100 三相直流充电模块对数字电源芯片在物理上它必须具备哪些功能和性能?
  • ¥30 数字电源对DSP芯片的具体要求
  • ¥20 antv g6 折线边如何变为钝角
  • ¥30 如何在Matlab或Python中 设置饼图的高度
  • ¥15 nginx中的CORS策略应该如何配置
  • ¥30 信号与系统实验:采样定理分析
  • ¥100 我想找人帮我写Python 的股票分析代码,有意请加mathtao