首页 > 其他分享 >MFC 简单的界面切换测试主窗体类似控件的方式嵌入其他窗体

MFC 简单的界面切换测试主窗体类似控件的方式嵌入其他窗体

时间:2024-01-24 10:14:56浏览次数:28  
标签:控件 MFC SW CMFCApplication5SubFormSwitchDlg 窗体 CSubForm2 ShowWindow CSubForm1

▲ 类向导->MFC类 创建两个子窗体。

1。创建两个子窗体。
2。属性设置:1)、“Style”选择“Child”;中文版“样式”选择“下层”。2)、“Border”为“None”;中文版“边框”选择“无”。
3。主窗体中实例子窗体对象:

声明:

private:
    CSubForm1* m_CSubForm1;
    CSubForm2* m_CSubForm2;

构造函数,析构函数:

CMFCApplication5SubFormSwitchDlg::CMFCApplication5SubFormSwitchDlg(CWnd* pParent /*=nullptr*/)
    : CDialogEx(IDD_MFCAPPLICATION5SUBFORMSWITCH_DIALOG, pParent)
{
    m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
    m_CSubForm1 = new CSubForm1;
    m_CSubForm2 = new CSubForm2;
}

CMFCApplication5SubFormSwitchDlg::~CMFCApplication5SubFormSwitchDlg()
{
    delete m_CSubForm1;
    delete m_CSubForm2;
}

4。初始化设定BOOL CMFCApplication5SubFormSwitchDlg::OnInitDialog()函数中添加:

m_CSubForm1->Create(IDD_CSubForm1, this);
CRect re;
GetDlgItem(IDC_STATIC_ZOON)->GetWindowRect(&re);
ScreenToClient(re);
m_CSubForm1->MoveWindow(re);
m_CSubForm1->ShowWindow(SW_SHOW);


m_CSubForm2->Create(IDD_CSubForm2, this);
m_CSubForm2->MoveWindow(re);
m_CSubForm2->ShowWindow(SW_HIDE);

5。按钮切换

切换页面按钮响应:

void CMFCApplication5SubFormSwitchDlg::OnBnClickedButtonswitch()
{
    if (m_CSubForm1->IsWindowVisible()) {
        m_CSubForm1->ShowWindow(SW_HIDE);
        m_CSubForm2->ShowWindow(SW_SHOW);
    }
    else if (m_CSubForm2->IsWindowVisible()) {
        m_CSubForm1->ShowWindow(SW_SHOW);
        m_CSubForm2->ShowWindow(SW_HIDE);
    }
}

▲ 点击 切换页面 按钮,相应区域会切换子页面显示

标签:控件,MFC,SW,CMFCApplication5SubFormSwitchDlg,窗体,CSubForm2,ShowWindow,CSubForm1
From: https://www.cnblogs.com/huvjie/p/17983980

相关文章

  • MFC 基于对话框的程序如何屏蔽掉 ENTER 键和 ESC 键退出的情况
    重写PreTranslateMessage(MSG*pMsg)函数。protected: HICONm_hIcon; //生成的消息映射函数 virtualBOOLOnInitDialog(); afx_msgvoidOnSysCommand(UINTnID,LPARAMlParam); afx_msgvoidOnPaint(); afx_msgHCURSOROnQueryDragIcon();afx_msgBOOLPreTra......
  • MFC OnPaint 绘制一行简单文字
    ▲绘制一行简单文字OnPaint()消息。voidCMFCApplication6Dlg::OnPaint(){CPaintDCcdc(this);/***OnPaint绘制简单文字*****/cdc.TextOutW(100,100,TEXT("你好,MFC!")); if(IsIconic()) { CPaintDCdc(this);//用于绘制的设备上下文 SendMessa......
  • jsgrid多个自定义控件按钮?
    我想添加多个自定义控件按钮,这样我就可以向这些按钮添加一个自定义单击事件。我遇到的问题是删除按钮只显示出来。我希望编辑和删除按钮都显示在每一行。我有以下代码:<script>$(document).ready(function(){$("#jsGrid").jsGrid({height:"auto",......
  • c#dataGridView控件水平滚动条不显示的原因
    https://blog.csdn.net/weixin_44899642/article/details/128791899c#dataGridView控件水平滚动条不显示的原因1.最主要的在dataGridView控件属性中的ScrollBars是否设为BothBoth代表水平和垂直方向根据实际需求自动显示滚动条None代表水平和垂直都不显示滚动条Vertical代表......
  • DevExpress WinForms导航控件 - 交付更时尚、体验更好的业务应用(二)
    DevExpressWinForms的SideNavigation(侧边导航)和NavPanel(导航面板)可以帮助客户交付完全可模仿UI体验的业务解决方案,这些体验在当今流行的应用程序中都可找到。在上文中(点击这里回顾>>),我们为大家介绍了DevExpressWinForms导航控件中的折叠组件、导航栏组件等。接下来我们将继续......
  • VB6的OfficeMenu控件 - 开源研究系列文章
          这次将原来VB6中喜欢和使用到的OfficeMenu的控件做一个使用介绍。      上次介绍了VB6中的控件引擎,但是那个只针对基本的控件,这个OfficeMenu控件在当时是收费的,笔者找度娘好不容易才下载到一个免费版本,而且使用起来也非常的方便,在当时那个年代是笔者对于VB6中......
  • 界面控件DevExpress ASP.NET Data Grid组件 - 可快速处理各类型数据!(一)
    由DevExpress开发的快速且功能完整的ASP.NETWebForms的DataGrid组件,从全面的数据塑造和数据过滤选项到十多个集成数据编辑器,该套件提供了帮助用户构建极佳数据所需的一些,没有限制!P.S:DevExpressASP.NETWebForms Controls拥有针对Web表单(包括报表)的110+种UI控件,可利用轻量级......
  • Avalonia TemplatedControl (模板控件)
    在ava中的模板控件相当于wpf中的自定义控件在下面示例中,将绘制一个文本框和一个按钮,用来组合一个搜索控件在app.axaml中加入样式<Application.Styles><FluentTheme/><StyleIncludeSource="/TemplatedControl1.axaml"/></Application.Styles>引入并使用xmlns......
  • 布局控件:Grid和StackPanel
    布局控件:Grid和StackPanel本文同时为b站WPF课程的笔记,相关示例代码一个窗口顶上的部分叫做非客户区,下面的部分叫做客户区域。非客户区域主要就是一个Title和三个窗口样式按钮。我们主要学习修改客户区域。Grid直接在<Window>标签下当然也是可以直接写元素的,但是只能写一个。......
  • 布局控件:Grid和StackPanel
    布局控件:Grid和StackPanel本文同时为b站WPF课程的笔记,相关示例代码一个窗口顶上的部分叫做非客户区,下面的部分叫做客户区域。非客户区域主要就是一个Title和三个窗口样式按钮。我们主要学习修改客户区域。Grid直接在<Window>标签下当然也是可以直接写元素的,但是只能写一个。......