关闭

MFC实现多个界面跳转

标签: 对话框MFC界面
1029人阅读 评论(0) 收藏 举报
分类:

对于一个应用程序,对话框之间的跳转需要一个类似容器的窗口
新建一个对话框(标注为empty对话框),在里面不加任何东西,调好大小,因为它就是你的应用程序的窗口大小
这时建好所有你要跳转的对话框,通常有个主界面对话框(标注为main对话框),我们要做的就是把main放入到那个empty中,其中有一步很重要,把main的属性(border改为thin或none,style改为child)
接下来讲讲如何把main放入empty
CEmptyDlg –emptydlg.h

include "maindlg.h"
include "setupdlg.h"  //(setup和main一样是一个对话框)

//初始参数
public:
      CDialog *m_pPages[14];//定义的14,就是说能够存放的最多对话框,根据需求改变
      UINT m_IDD[14];        //每个对话框对应的IDD_XXX
      int m_nNumOfPage;  //标示数组下标
      CRect showRect;     //画布

      CMainDlg   *d_main;//0
      CSetupDlg   *d_setup;//1
 //函数
public:
BOOL AddPage(CDialog* pDialog,UINT ID);//添加进空对话框
 void ShowPage(int CurrentPage);     //把你所需要显示的对话框显示出来

CEmptyDlg –emptydlg.cpp

  m_nNumOfPage=0;
 d_main = new CMainDlg(this);//this即empty对话框的窗口指针,就是说新建一个子对象指针
 d_setup = new CSetupDlg (this);

BOOL CEmptyDlg::AddPage(CDialog* pDialog,UINT ID)
{
 m_pPages[m_nNumOfPage]=pDialog;
 m_IDD[m_nNumOfPage]=ID;
 m_pPages[m_nNumOfPage]->Create(ID,this);
 m_pPages[m_nNumOfPage]->MoveWindow(&showRect);
 m_nNumOfPage++;
 return true;
}
void CEmptyDlg::ShowPage(int CurrentPage)
{
 for(int nCount=0;nCount<m_nNumOfPage;nCount++)
 {
  if(nCount==CurrentPage)
  {
   m_pPages[nCount]->ShowWindow(SW_SHOW);
   continue;
  }
  m_pPages[nCount]->ShowWindow(SW_HIDE);
 }
}

BOOL CEmptyDlg::OnInitDialog()
{
 CDialog::OnInitDialog();
//。。。。。。
showRect.SetRect(-5,-5,800,600);
 this->AddPage(d_main,IDD_DEK265_MAIN);
 this->AddPage(d_setup,IDD_DEK265_SETUP);

this->ShowPage(0);//把main对话框显示出来
}

这时页面都添加进了,怎么跳转是你的事了,比如我要从main跳到setup
main对话框 按钮函数

void CMainDlg::ClickBtnMaint()
{
 // TODO: 在此处添加消息处理程序代码
 CEmptyDlg *pMMD = (CEmptyDlg*)AfxGetMainWnd();   
 pMMD->ShowPage(1);//跳到setup对话框
}
0
0
查看评论

MFC界面库

好东西,果断收藏    刚开始用C++做界面的时候,根本不知道怎么用简陋的MFC控件做出比较美观的界面,后来就开始逐渐接触到BCG  Xtreme ToolkitPro v15.0.1,Skin++,等界面库,以及一些网友自己写的界面库,开始对于C++...
  • cddchina
  • cddchina
  • 2014-08-22 17:09
  • 41109

MFC界面设计入门篇

点击C++里的MFC再点击MFCApplication,到下面改名字和路径,然后OK 然后点击Next, 选择single document,MFCstandard,简体中文,然后Finish 这时候可以先直接运行,看看工程的样子,操作如下 编译完成, 稍后...
  • chongshangyunxiao321
  • chongshangyunxiao321
  • 2016-04-09 12:25
  • 9836

mfc多页面之间的跳转实现

假设现在我有两个界面A和B,那么我想通过点击A页面的button控件实现跳转到B页面则只需在A界面中双击button控件(也可以通过点击类向导)创建button的函数,然后在button的函数中写上以下代码 B dlg; dlg.DoModal(); 最后在A页面的头文件中增加 #includ...
  • u014387696
  • u014387696
  • 2017-06-10 21:43
  • 454

MFC Dialog界面跳转实现方式总结

现在有两个Dialog,一个是创建工程时自己生成的Dialog1,另一个是在资源中自己添加的一个Dialog2。程序每次运行时运行的是Dialog1,现在要通过点击Dialog1上的一个BUTTON来实现关闭Dialog1同时打开Dialog2 (类似于登陆跳转),也就是对话框间的跳转。 一,首...
  • pugongying1988
  • pugongying1988
  • 2012-12-21 17:30
  • 11615

mfc 按钮 实现多个界面跳转

原文在这里: 对于一个应用程序,对话框之间的跳转需要一个类似容器的窗口 新建一个对话框(标注为empty对话框),在里面不加任何东西,调好大小,因为它就是你的应用程序的窗口大小 这时建好所有你要跳转的对话框,通常有个主界面对话框(标注为main对话框),我们要做的就是把...
  • ahengge12083109
  • ahengge12083109
  • 2014-08-19 09:31
  • 1965

用VC6.0建立MFC工程,建立对话框和简单的实现跳转

对话框的新建及跳转 点击File->New->Project->MFC AppWizard(exe)填写好路径和工程名称 选择dialog based。点击Finish。就新建好了。   右键我们的工程文件夹,选择insert->dialog。这时原来工程中...
  • liangyong_hui
  • liangyong_hui
  • 2016-06-30 23:57
  • 3052

MFC的DLG的困惑

记得当时刚开始学习vc时,自己也很傻,指导我的人说:mfc的dlg很简单,你就从这个开始吧。于是二话没说,就开始了dlg的艰难旅程。现在想想,会用DLG 做程序的人真的很傻很天真。MFC简单吗?我想,说简单的人多半也就是是知道用那玩意做做界面忽悠忽悠别人比较简单吧。 闲话就不说了。只是谈谈最近工...
  • hesiyuan4
  • hesiyuan4
  • 2012-05-23 12:52
  • 1201

MFC实现多个界面跳转

对于一个应用程序,对话框之间的跳转需要一个类似容器的窗口新建一个对话框(标注为empty对话框),在里面不加任何东西,调好大小,因为它就是你的应用程序的窗口大小这时建好所有你要跳转的对话框,通常有个主界面对话框(标注为main对话框),我们要做的就是把main放入到那个empty中,其中有一步很重要...
  • xuexiiphone
  • xuexiiphone
  • 2016-04-26 18:13
  • 2153

MFC登录界面,跳转到功能界面

假如主对话框为登录对话框—MainDlg,功能对话框为WorkDlg。 在MainDlg点登录按钮后,不要调用OnOK()函数来销毁MainDlg,而是将MainDlg用ShowWindow(SW_HIDE)隐藏。同时,在MainDlg中新建WorkDlg: WorkDlg* dlg; dlg-...
  • sxnbetter
  • sxnbetter
  • 2015-01-08 11:36
  • 1829

MFC下的界面跳转

  • 2014-08-24 18:03
  • 14KB
  • 下载
    个人资料
    • 访问:36317次
    • 积分:763
    • 等级:
    • 排名:千里之外
    • 原创:36篇
    • 转载:19篇
    • 译文:0篇
    • 评论:1条
    文章分类
    最新评论