vc如何把弹出的对话框嵌入到单文档的主框架内

piezo 2009-11-14 08:52:25
在新建的单文档过程中的CVIEW改成了CFORMVIEW,但想把弹出的对话框也嵌入到单文档的主框架内,请问如何实现?请高人指点!
...全文
668 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
神一样的对友 2011-04-08
  • 打赏
  • 举报
回复
这个还得回复 。
fangchao918628 2009-11-16
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 piezo 的回复:]
谢谢!
请问如何在拆分的窗口嵌入弹出的对话框?
[/Quote]

创建一个继承CFormView的类;
资源里面-》Dialog右键——》Insert ...->将Dialog展开有个IDD_FORMVIEW,创建就行,
然后将上面的CView3替换成你创建的View就行根据你想要放的位置!
mazm_yanzhu 2009-11-16
  • 打赏
  • 举报
回复
比如上面提到的CView4类,将该类从对话框继承就可以了
piezo 2009-11-16
  • 打赏
  • 举报
回复
谢谢楼上的回复,我试下。
piezo 2009-11-15
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 mazm_yanzhu 的回复:]
参照下面拆分窗口
BOOL CMainFrame::OnCreateClient( LPCREATESTRUCT /*lpcs*/, CCreateContext* pContext)
{
 //创建一个静态分栏窗口,分为三行一列
 if(m_wndSplitter1.CreateStatic(this,3,1)==NULL)
  return FALSE;
 //将CCuteFTPView连接到0行0列窗格上
 m_wndSplitter1.CreateView(0,0,RUNTIME_CLASS(CCuteFTPView),CSize(100,100), pContext);
 m_wndSplitter1.CreateView(2,0,RUNTIME_CLASS(CView4),CSize(100,100),pContext);
 //将CView4连接到2行0列
 if(m_wndSplitter2.CreateStatic(&m_wndSplitter,1,2,WS_CHILD|WS_VISIBLE, m_wndSplitter.IdFromRowCol(1, 0))==NULL)
  return FALSE; //将第1行0列再分开1行2列
 //将CView2类连接到第二个分栏对象的0行0列
 m_wndSplitter2.CreateView(0,0,RUNTIME_CLASS(CView2),CSize(400,300),pContext);
 //将CView3类连接到第二个分栏对象的0行1列
 m_wndSplitter2.CreateView(0,1,RUNTIME_CLASS(CView3),CSize(400,300),pContext);
 return TRUE;
}

然后将你想要的窗口位置显示你的对话框
[/Quote]

谢谢!
请问如何在拆分的窗口嵌入弹出的对话框?
mazm_yanzhu 2009-11-14
  • 打赏
  • 举报
回复
参照下面拆分窗口
BOOL CMainFrame::OnCreateClient( LPCREATESTRUCT /*lpcs*/, CCreateContext* pContext)
{
 //创建一个静态分栏窗口,分为三行一列
 if(m_wndSplitter1.CreateStatic(this,3,1)==NULL)
  return FALSE;
 //将CCuteFTPView连接到0行0列窗格上
 m_wndSplitter1.CreateView(0,0,RUNTIME_CLASS(CCuteFTPView),CSize(100,100), pContext);
 m_wndSplitter1.CreateView(2,0,RUNTIME_CLASS(CView4),CSize(100,100),pContext);
 //将CView4连接到2行0列
 if(m_wndSplitter2.CreateStatic(&m_wndSplitter,1,2,WS_CHILD|WS_VISIBLE, m_wndSplitter.IdFromRowCol(1, 0))==NULL)
  return FALSE; //将第1行0列再分开1行2列
 //将CView2类连接到第二个分栏对象的0行0列
 m_wndSplitter2.CreateView(0,0,RUNTIME_CLASS(CView2),CSize(400,300),pContext);
 //将CView3类连接到第二个分栏对象的0行1列
 m_wndSplitter2.CreateView(0,1,RUNTIME_CLASS(CView3),CSize(400,300),pContext);
 return TRUE;
}

然后将你想要的窗口位置显示你的对话框
delphiwcdj 2009-11-14
  • 打赏
  • 举报
回复
以前用过设定child对话框的位置可以实现
piezo 2009-11-14
  • 打赏
  • 举报
回复
只设置为child是不够的。
piezo 2009-11-14
  • 打赏
  • 举报
回复
谢谢楼上的回复!
本人是新手,请问怎样将CView*或者CFrameWnd*给对话框做父窗口?
梧桐126 2009-11-14
  • 打赏
  • 举报
回复
好像有个消息可以实现,就是拆分界面的,具体忘记了!呵呵
xwsn007 2009-11-14
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 whs1980 的回复:]
把对话框的属性设置为child
[/Quote]

同意楼上的
whs1980 2009-11-14
  • 打赏
  • 举报
回复
把对话框的属性设置为child
an_bachelor 2009-11-14
  • 打赏
  • 举报
回复
CDialog
用CView*或者CFrameWnd*给他做父窗口 一般你是做成非模态对话框
就用Create

Example

CMyDialog* pDialog;

void CMyWnd::OnSomeAction()
{
//pDialog initialized to NULL in the constructor of CMyWnd class
pDialog = new CMyDialog();
//Check if new succeeded and we got a valid pointer to a dialog object
if(pDialog != NULL)
{
BOOL ret = pDialog->Create(IDD_MYDIALOG,/*父窗口*/);
if(!ret) //Create failed.
AfxMessageBox("Error creating Dialog");
pDialog->ShowWindow(SW_SHOW);
}
else
AfxMessageBox("Error Creating Dialog Object");
}

4,012

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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