精华内容
下载资源
问答
  • 首先创建一个MFC的对话框工程,并拉几个按钮(本文中假设3个,Button1,Button2,Button3)放在对话框上,注意留出一定的空间给子对话框。往工程里添加3个类(CChildDlg1,CChildDlg2,CChildDlg3),基类是CDialog. ...

    首先创建一个MFC的对话框工程,并拉几个按钮(本文中假设3个,Button1,Button2,Button3)放在对话框上,注意留出一定的空间给子对话框。

    往工程里添加3个类(CChildDlg1,CChildDlg2,CChildDlg3),基类是CDialog.
    右键工程名,添加->类->选择MFC类并双击之后见下图
    这里写图片描述
    进入每个类的对话框资源中,将Border属性设为none,将Style属性设为child (这一步很重要)
    在工程头文件中包含每个子对话框类的头文件,并声明出每个类的对象(CChildDlg1 childDlg1;CChildDlg2 childDlg2;CChildDlg3 childDlg3;)

    以下有两种实现方式
    一:点击一个按钮时将此按钮置为不可用,将其他按钮置为可用,销毁其他子对话框,创建本按钮对应的子对话框,这种方式比较节省内存,但是每次需要重新创建子对话框,比界面切换会不流畅
    实现:
    1、在每个子对话框类中重载OnCanel函数,并将其改为

    void CChildDlg1::OnCancel()
    {
        // TODO:  在此添加专用代码和/或调用基类
    
        DestroyWindow();
    }

    注意非模态对话框销毁需要重载函数OnCanel,并且在这个函数中调用DestroyWindow。并且不能调用基类的OnCancel,因为基类的OnCancel调用了EndDialog这个函数,这个函数是针对模态对话框的

    2、双击Button1,进入Button1的响应函数中,添加以下代码

        button1.EnableWindow(FALSE);//设置button1为不可用
        button2.EnableWindow(TRUE);
        button3.EnableWindow(TRUE);
        childDlg1.Create(IDD_CHILDDLG1, this);
        childDlg1.SetWindowPos(NULL, 20, 50, 0, 0, SWP_NOSIZE | SWP_NOZORDER | SWP_NOACTIVATE);//设置窗口相对于父窗口的位置
        childDlg1.ShowWindow(SW_SHOW);//设置childDlg1对话框为可见
        childDlg2.OnCancel();//销毁child2子对话框
        childDlg3.OnCancel();

    对于其它两个按钮添加类似的代码(注意逻辑).

    二.在主对话框的OnInitDialog函数中创建每个子对话框,并将第一个按钮设置为不可用(自己想为什么),然后在各个按钮的点击事件中用显示与隐藏的方法达到选项卡的效果,这种方法每个子对话框都存在于内存中,比较消耗资源,但是界面切换比较流畅

    1.在主对话框中创建各个对话框

    BOOL CMainDlg::OnInitDialog()
    {
        button1.EnableWindow(FALSE);
        childDlg1.Create(IDD_CHILDDLG1, this);
        childDlg1.SetWindowPos(NULL, 20, 50, 0, 0, SWP_NOSIZE | SWP_NOZORDER | SWP_NOACTIVATE);
        childDlg1.ShowWindow(SW_SHOW);
        childDlg2.Create(IDD_CHILDDLG2, this);
        childDlg2.SetWindowPos(NULL, 20, 50, 0, 0, SWP_NOSIZE | SWP_NOZORDER | SWP_NOACTIVATE);
        childDlg2.ShowWindow(SW_SHOW);
        childDlg3.Create(IDD_CHILDDLG3, this);
        childDlg3.SetWindowPos(NULL, 20, 50, 0, 0, SWP_NOSIZE | SWP_NOZORDER | SWP_NOACTIVATE);
        childDlg3.ShowWindow(SW_SHOW);
    }

    2.在各个按钮响应函数中显示与隐藏子对话框

    BOOL CMainDlg::On:OnBnClickedBtbutton1()
    {
        button1.EnableWindow(FALSE);
        button2.EnableWindow(TRUE);
        button3.EnableWindow(TRUE);
        childDlg1.ShowWindow(SW_SHOW);
        childDlg2.ShowWindow(SW_HIDE);
        childDlg3.ShowWindow(SW_HIDE);
    }
    

    其他的两个按钮类似(注意逻辑);

    OK ,有错误的地方还望大家指正 @HackerXZY

    展开全文
  • 参考博文:http://blog.csdn.net/xuanzhangyang/article/details/45418103首先创建一个MFC的对话框工程,并拉几个按钮(本文中假设3个,Button1,Button2,Button3)放在对话框上,注意留出一定的空间给子对话框。...

    参考博文:http://blog.csdn.net/xuanzhangyang/article/details/45418103

    首先创建一个MFC的对话框工程,并拉几个按钮(本文中假设3个,Button1,Button2,Button3)放在对话框上,注意留出一定的空间给子对话框。

    往工程里添加3个类(CChildDlg1,CChildDlg2,CChildDlg3),基类是CDialog. 
    右键工程名,添加->类->选择MFC类并双击之后见下图 
    这里写图片描述 
    进入每个类的对话框资源中,将Border属性设为none,将Style属性设为child (这一步很重要) 
    在工程头文件中包含每个子对话框类的头文件,并声明出每个类的对象(在主对话框的cpp文件中声明CChildDlg1 childDlg1;CChildDlg2 childDlg2;CChildDlg3 childDlg3;),注意给每BUTTON1,BUTTON2,BUTTON3右键添加变量button1,button2,button3.这样才算给button一个名字,可以调用相关的函数,例如:EnableWindow()。

    以下有两种实现方式 
    一:点击一个按钮时将此按钮置为不可用,将其他按钮置为可用,销毁其他子对话框,创建本按钮对应的子对话框,这种方式比较节省内存,但是每次需要重新创建子对话框,比界面切换会不流畅 
    实现: 
    1、在每个子对话框类(h文件)中重载(或者说重载把)OnCanel函数,并将其改为

    void CChildDlg1::OnCancel()
    {
        // TODO:  在此添加专用代码和/或调用基类
    
        DestroyWindow();
    }
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    注意非模态对话框销毁需要重载函数OnCanel,并且在这个函数中调用DestroyWindow。并且不能调用基类的OnCancel,因为基类的OnCancel调用了EndDialog这个函数,这个函数是针对模态对话框的

    2、双击Button1,进入Button1的响应函数中,添加以下代码

        button1.EnableWindow(FALSE);//设置button1为不可用
        button2.EnableWindow(TRUE);
        button3.EnableWindow(TRUE);
        childDlg1.Create(IDD_CHILDDLG1, this);
        childDlg1.SetWindowPos(NULL, 20, 50, 0, 0, SWP_NOSIZE | SWP_NOZORDER | SWP_NOACTIVATE);//设置窗口相对于父窗口的位置
        childDlg1.ShowWindow(SW_SHOW);//设置childDlg1对话框为可见
        childDlg2.OnCancel();//销毁child2子对话框
        childDlg3.OnCancel();
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    对于其它两个按钮添加类似的代码(注意逻辑).

    二.在主对话框的OnInitDialog函数中创建每个子对话框,并将第一个按钮设置为不可用(自己想为什么),然后在各个按钮的点击事件中用显示与隐藏的方法达到选项卡的效果,这种方法每个子对话框都存在于内存中,比较消耗资源,但是界面切换比较流畅

    1.在主对话框中创建各个对话框

    BOOL CMainDlg::OnInitDialog()
    {
        button1.EnableWindow(FALSE);
        childDlg1.Create(IDD_CHILDDLG1, this);
        childDlg1.SetWindowPos(NULL, 20, 50, 0, 0, SWP_NOSIZE | SWP_NOZORDER | SWP_NOACTIVATE);
        childDlg1.ShowWindow(SW_SHOW);
        childDlg2.Create(IDD_CHILDDLG2, this);
        childDlg2.SetWindowPos(NULL, 20, 50, 0, 0, SWP_NOSIZE | SWP_NOZORDER | SWP_NOACTIVATE);
        childDlg2.ShowWindow(SW_SHOW);
        childDlg3.Create(IDD_CHILDDLG3, this);
        childDlg3.SetWindowPos(NULL, 20, 50, 0, 0, SWP_NOSIZE | SWP_NOZORDER | SWP_NOACTIVATE);
        childDlg3.ShowWindow(SW_SHOW);
    }
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    2.在各个按钮响应函数中显示与隐藏子对话框

    BOOL CMainDlg::On:OnBnClickedBtbutton1()
    {
        button1.EnableWindow(FALSE);
        button2.EnableWindow(TRUE);
        button3.EnableWindow(TRUE);
        childDlg1.ShowWindow(SW_SHOW);
        childDlg2.ShowWindow(SW_HIDE);
        childDlg3.ShowWindow(SW_HIDE);
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    其他的两个按钮类似(注意逻辑);

    展开全文
  • VB 制作具有选项卡对话框 VB 制作具有选项卡对话框
  • vc++为对话框添加属性页选项卡.zip visual c++如何给对话框,容器添加属性页标签选项卡
  • visual c++ vc在对话框上添加属性页选项卡标签页tab.zip
  • 几个原创的js界面控件(菜单,对话框,进度条,选项卡,树)
  • 可拆卸,可停靠,可调整大小,浮动,选项卡对话框和FloatArea小部件
  • 选项卡上添加对话框(VC)

    千次阅读 2008-10-15 15:35:00
    1、首先创建一个MFC对话框框架,在对话框资源上从工具箱中添加上一个Tab Control 控件,根据需要修改一下属性,然后右击控件,为这个控件添加一个变量,将此控件跟一个CTabCtrl类变量绑定在一起,这里设为m_...

      1、首先创建一个MFC对话框框架,在对话框资源上从工具箱中添加上一个Tab   Control   控件,根据需要修改一下属性,然后右击控件,为这个控件添加一个变量,将此控件跟一个CTabCtrl类变量绑定在一起,这里设为m_tabctrl   
      2、创建两个新的对话框资源,其属性作如下修改:   
      Border:none   //边界为空,这样它就没了标题栏   
      Style   :Child   //   这样这个模板就可以当作另一个窗口的子窗口了。   
            其它如果没有必要,就不用改了。   
      在上面加一些控件什么的,具体操作跟普通对话框没有区别。   
      完成后从这两个对话框模板生成两个新的对话框类。   
      3、在主对话框中为新添加进来的两个类增加两个变量:   
      如:CDialog1   dlg1;   
      CDialog2   dlg2;   
      4、在主对话框的OnInitDialog()函数中添加如下类似的代码:   
     m_pTabCtrl = (CTabCtrl*)GetDlgItem(IDC_TAB1);
     
     TCITEM  item;  
     item.mask   =   TCIF_TEXT;  
     item.pszText   =   "第一页";  
       
     m_pTabCtrl->InsertItem(0,&item);  
     item.pszText   ="第二页";  
     m_pTabCtrl->InsertItem(1,&item);  
       
     dlg1.Create   (IDD_DIALOG1, m_pTabCtrl);  
     dlg2.Create   (IDD_DIALOG2, m_pTabCtrl);  
       
     dlg1.SetWindowPos   (NULL,10,30,400,100,SWP_SHOWWINDOW);  
     dlg2.SetWindowPos   (NULL,10,30,400,100,SWP_HIDEWINDOW);     
      解释如下:   
      两个InsertItem函数的调用是为了给标签控件增加两个标签页面,文本是标题。   
      SetWindowPos()函数设置这两个对话框在Z顺序中的位置,显示或隐藏状态.。   
      5、在主对话中为标签控件添加一个标签选择改变(TCN_SELCHANGE)的控件通知消息,以便在用户选择标签时通知主对话框。在主对话框的编辑界面右击标签控件,选择添加一个事件可以完成这个操作。   
      在事件处理中添加如下代码,如下例:   
    void CTabCtrlTstDlg::OnSelchangeTab1(NMHDR* pNMHDR, LRESULT* pResult)
    {
     // TODO: Add your control notification handler code here
       CRect   r;  
       m_pTabCtrl->GetClientRect   (&r);  
      
       switch(m_pTabCtrl->GetCurSel())  
       {  
       case   0:  
        dlg1.SetWindowPos   (NULL,10,30,r.right   -20,r.bottom   -40,SWP_SHOWWINDOW);  
        dlg2.SetWindowPos   (NULL,10,30,r.right   -20,r.bottom   -40,SWP_HIDEWINDOW   );      
        break;  
       case   1:  
        dlg1.SetWindowPos   (NULL,10,30,r.right   -20,r.bottom   -40,SWP_HIDEWINDOW);  
        dlg2.SetWindowPos   (NULL,10,30,r.right   -20,r.bottom   -40,SWP_SHOWWINDOW   );      
        break;  
       }   

     *pResult = 0;
    }
      要想知道用户选择那个标签页,要通过m_tabctrl.GetCurSel()   函数。为了不使显示的子对话框覆盖标签控件的显示,所以要获得标签控件的尺寸然后设置各页面的尺寸。   

    展开全文
  • 1.添加选项卡打开fckeditor/editor/dialogfck_image.html通过折叠代码我们可以看到,图片属性对话框中的每个tabs就是一个div标签。div id="divInfo">………………div>div id="divUpload" style="display: none">...

    1.添加选项卡
    打开fckeditor/editor/dialogfck_image.html
    通过折叠代码我们可以看到,图片属性对话框中的每个tabs就是一个div标签。

    <div id="divInfo">
    ………………
    </div>
    <div id="divUpload" style="display: none">
    ………………    
    </div>
    <div id="divLink" style="display: none">
    ………………
    </div>
    <div id="divAdvanced" style="display: none">
    ………………
    </div>

    我们添加新的tabs。

    <div id="divPB" class="addmode" style="display: none">

    </div>

     2.添加显示逻辑
    打开fckeditor/editor/fck_image/fck_image.js

    //#### Dialog Tabs

    // Set the dialog tabs.
    dialog.AddTab( 'Info', FCKLang.DlgImgInfoTab ) ;

    if ( !bImageButton && !FCKConfig.ImageDlgHideLink )
        dialog.AddTab( 
    'Link', FCKLang.DlgImgLinkTab ) ;

    if ( FCKConfig.ImageUpload )
        dialog.AddTab( 
    'Upload', FCKLang.DlgLnkUpload ) ;

    if ( !FCKConfig.ImageDlgHideAdvanced )
        dialog.AddTab( 
    'Advanced', FCKLang.DlgAdvancedTag ) ;

    //处理新加入的tabs
    if ( FCKConfig.ImageUpload )
            window.parent.AddTab( 
    'Upload', FCKLang.DlgLnkUpload ) ;
        window.parent.AddTab( 
    'PB'"我的图库" );

    在function OnDialogTabChange( tabCode )中添加ShowE('divPB'     , ( tabCode == 'PB' ) ) ;

    重新打开页面,打开图片属性网页对话框的时候,就可以看到新

    展开全文
  • 选项卡的使用方法 1.新建MFC对话框命名为Demo,将Tab Control控件拉入初始的对话框中,根据需要修改属性。给控件添加变量为m_tab。 2.在资源视图界面添加两个新的对话框(你的Tab Control想几页就建几个对话框...
  • vc++对话框

    千次阅读 2013-03-07 15:22:16
    对话框的分类:模式对话框和无模式对话框 1、模式对话框是指在程序继续之前需要用户对该对话框作出响应(单击确定或者取消)。当一个模式对话框打开时,用户只能与该对话框进行交互,其他用户界面对象收不到输入...
  • 我用的编译器是VS2017,大家按照步骤一步一步来,应该是可以实现选项卡切换窗体的。 1.新建C#窗体应用,我建的项目名称是TabControlDemo,建议新手也用这个名称,否则后面赋值代码的时候可能会出错 2.新建三个...
  • 为MFC对话框选项卡控件或属性页子对话框添加滚动条。需要提醒的是:在对话框中按ALT键拖放控件可实现控件在对话框外的摆放。
  • MFC选项卡

    2014-06-19 13:45:36
    1、首先创建一个MFC对话框框架,在对话框资源上从工具箱中添加上一个Tab Control 控件,根据需要修改一下属性,然后右击控件,为这个控件添加一个变量, 将此控件跟一个CTabCtrl类变量绑定在一起,这里设为m_...
  • 【Android开发】高级组件-选项卡

    万次阅读 热门讨论 2015-04-06 18:34:02
    选项卡主要由TabHost、TabWidget和FrameLayout3个组件组成,用于实现一个多标签页的用户界面,通过它可以将一个复杂的对话框分割成若干个标签页,实现对信息的分类显示和管理。使用该组件不仅可以使界面简洁大方,还...
  • MFC选项卡控件的使用

    千次阅读 2015-12-06 23:17:52
    2. 在对话框上添加Tab控件,然后,在控件上右键添加变量,变量名为m_TabWin. 类型为CTabCtrl.  3. 在对话框的初始化函数OnInitDialog里面添加如下代码: m_TabWin.InsertItem(0, _T("Main Hyposis")); m_TabWin....
  • TabControl 选项卡

    千次阅读 2005-12-08 15:13:00
    Windows 窗体 TabControl 显示多个选项卡,这些选项卡类似于笔记本中的分隔卡和档案柜文件夹中的标签。选项卡中可包含图片和其他控件。TabControl 控件可用来产生多页对话框。这种对话框出现在 Windows 操作系统中的...
  • selector参数为选项卡整体外围元素,该元素包含选项卡标题与内容,options参数为tabs()方法的配置对象,通过该对象还能以ajax方式加载选项卡的内容。 6、对话框插件——dialog,弹出自定义按钮确认框 ...
  •  属性页对话框实际上是一个包含多个子对话框对话框,这些子对话框通常被称为页(Page),每次只有一个页是可见的,在对话框的顶端一行的选项卡,可通过点击不同的选项卡切换到不同的页。这样就可以容纳大量的...
  • Excel不仅可以自己创建选项卡和组,还可以重命名或更改内置选项卡和组的顺序。直接说可能很难理解,下面我直接演示效果吧。 看红色的选框,大家一看图片就知道我要表达什么意思了吧?我是怎么操作的呢?请大家看下面...
  • MFC 选项卡控件 Tab Control 的使用

    千次阅读 2013-09-11 11:42:46
     VC中的CTabCtrl用法与VB、Delphi的选项卡控件很大的不同,每个属性页是用一个“窗体”(对话框)来实现,于是要为每个属性页对话框建类,还要关联、初始化……实在麻烦得多。但是CTabCtrl可重用性比Activ
  • excel技巧:自定义选项卡

    千次阅读 2018-03-15 20:06:57
    Excel不仅可以自己创建选项卡和组,还可以重命名或更改内置选项卡和组的顺序。直接说可能很难理解,下面我直接演示效果吧。 看红色的选框,大家一看图片就知道我要表达什么意思了吧?我是怎么操作的呢?请大家看...
  • VS2017 + MFC对话框中创建子对话框

    千次阅读 2020-04-09 23:27:03
    MFC实现创建多个子对话框
  • MFC选项卡的实现

    千次阅读 2013-10-16 22:49:33
    对话框上放置一个Tab Control的控件,再在对话框上放置所需的控件(本例放置了2个按钮,试图在每个标签中显示一个)。然后利用Class Wizard来为Tab Control控件创建一个控件变量,该变量是CTabCtrl类的,再为其他...
  • 标签是作为一个控件而使用的,由于它不是对话框,因此编程时不能直接在各个标签页上添加控件,只能在选中不同标签时在相同的位置显示含有不同控件的对话框。这些对话框可以作为资源添加到项目中。标签控件实现的是在...
  • 11.1 模态对话框

    2015-11-16 17:04:53
     对话框分“模态”和“非模态”两种,其中模态对话框最为常见。当程序显示一个模态对话框时,用户不能在对话框和该程序的其他窗口之间进行切换。用户必须先明确地终止该对话框。这通常由单击 OK 或 Cancel 按钮来...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 95,411
精华内容 38,164
关键字:

对话框有选项卡吗