MFC对话框部分区域的显示和隐藏功能的实现

有时在进行MFC界面软件设计时,需要实现模块区域在使用到时才显示出来,不需要的时候可以进行隐藏的功能。其方法如下:

1.创建对话框;

2.在xxxDlg.h文件中定义矩形变量:

   private:
    CRect m_RectLarge;    //整个,整体全部面积区域
    CRect m_RectSmall;    //隐藏之后的面积区域

3.在OnInitDialog()初始化函数中添加以下代码,该代码用于初始化时隐藏区域功能:

   CRect m_RectShow;    //显示部分的面积区域
    GetWindowRect(&m_RectLarge);
    GetDlgItem(IDC_SHOW)->GetWindowRect(&m_RectShow);
    m_RectSmall.left = m_RectLarge.left;
    m_RectSmall.top = m_RectLarge.top;
    m_RectSmall.right = m_RectLarge.right;
    m_RectSmall.bottom = m_RectShow.top;
    SetWindowPos(NULL,0,0,m_RectSmall.Width(),m_RectSmall.Height(),SWP_NOMOVE|SWP_NOZORDER);

4.创建 button按钮,并在回调函数OnBnClickedBtnShow()中实现:

   {
    // TODO: 在此添加控件通知处理程序代码
    CString str;    
    GetDlgItemText(IDC_BTN_SHOW, str);
    if(str == _T("扩展显示>>"))
    {
        SetDlgItemText(IDC_BTN_SHOW, _T("隐藏显示<<"));
        SetWindowPos(NULL, 0, 0, m_RectLarge.Width(), m_RectLarge.Height(),SWP_NOMOVE|SWP_NOZORDER);
    }
    else if(str == _T("隐藏显示<<"))
    {
        SetDlgItemText(IDC_BTN_SHOW, _T("扩展显示>>"));
        SetWindowPos(NULL, 0, 0, m_RectSmall.Width(), m_RectSmall.Height(),SWP_NOMOVE|SWP_NOZORDER);
    }
}

完成,其结果如下所示:

                    

猜你喜欢

转载自blog.csdn.net/xzq413520903/article/details/82712115