CFormView 生成的对话框的问题

haluo 2004-01-01 02:56:32
我用CFormView创建一个单文档应用程序。 如何将我另外新建的几个对话框在初始的位置显示出来,而不是另外弹出一个对话框。 就象浏览器,新开页面的内容在原来的窗口显示,而不另外开新窗口。
...全文
87 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
thunder76 2004-01-01
  • 打赏
  • 举报
回复
不知你要的是否是在视图中显示属性页的效果?如果是的话,如下做:
首先,在你派生的CFormView中添加一个CPropertySheet类的成员;
其次,你要显示的对话框,基类必须是CPropertyPage,如:class CDataList : public CPropertyPage;
第三,创建对话框模板时选择属性页的种类;
第四,在你派生的CFormView的InitialUpdate中创建CPropertyCheet对象,添加属性页到这个对象中,如:
void CMonitorView::OnInitialUpdate()
{
CFormView::OnInitialUpdate();
GetParentFrame()->RecalcLayout();
ResizeParentToFit();
// Create the CPropertySheet, add property sheets to it.
if(!m_bFirstRun) // the rest part should do only once, and no run again at open again.
return;
m_sheet.AddPage(&m_DisplayPage);
m_sheet.Create(this, WS_CHILD|WS_VISIBLE|WS_TABSTOP, 0);
m_sheet.ModifyStyle(0, WS_EX_CONTROLPARENT);
m_sheet.ModifyStyle(0, WS_TABSTOP);
CRect rect;
GetClientRect(&rect);
m_sheet.SetWindowPos(NULL, rect.left-1, rect.top,0 ,0 ,
SWP_NOZORDER|SWP_NOSIZE|SWP_NOACTIVATE);
m_sheet.SetActivePage(0);

.
.
.
}
DebugXP 2004-01-01
  • 打赏
  • 举报
回复
你是说切换formview吗?

有好多这方面的文章
http://passmatlab.myetang.com/vc/index.htm

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧