MFC切换子界面

来源:互联网 发布:淘宝盗图会有什么后果 编辑:程序博客网 时间:2024/05/16 16:12

在Dialog程序中,子界面通常是一些子控件,这些控件在切换的时候通常是隐藏其他,显示要显示的控件来做到的。

下面的例子有两个按钮,分别控制两个静态文本的显示(点击按钮1会显示文本1,点击文本2会显示文本2)

实现分为如下几个步骤:
1 给Dialog添加静态文本和按钮成员变量。

private:
CButton m_btn_1;
CButton m_btn_2;
CStatic m_static_1;
CStatic m_static_2;

2 程序初始化的时候动态创建控件

    m_btn_1.Create(_T("动态按钮1"),WS_CHILD | WS_VISIBLE,CRect(20,10,100,40),this,IDC_MYBTN_1);    m_btn_2.Create(_T("动态按钮2"),WS_CHILD | WS_VISIBLE,CRect(110,10,190,40),this,IDC_MYBTN_2);    m_static_1.Create(_T("hello world1"),WS_CHILD|WS_BORDER|SS_SIMPLE |SS_CENTER|WS_VISIBLE,CRect(20,50, 190, 150),this);    m_static_2.Create(_T("hello world2"),WS_CHILD|WS_BORDER|SS_SIMPLE |SS_CENTER,CRect(20,50, 190, 150),this);

3 添加动态按钮机器响应函数的过程参考:
http://blog.csdn.net/calmreason/article/details/43791757

4 在响应函数中切换控件

void CmfcDlg::ClickBtn1(){    m_static_1.ShowWindow(TRUE);    m_static_2.ShowWindow(FALSE);    m_static_1.SetWindowText(_T("111111111111111111111111111111111111111111"));}void CmfcDlg::ClickBtn2(){    m_static_1.ShowWindow(FALSE);    m_static_2.ShowWindow(TRUE);    m_static_2.SetWindowText(_T("2222222222222222222222222222222222222222222"));}

这里写图片描述
这里写图片描述

0 0