在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"));
}
时间: 2024-10-14 02:41:01