MFC对话框扩展区域显示(可伸缩对话框区域)

一、新建对话框程序

对话框布局为:

黑色区域为初始显示区域。
红色区域为扩展区域。

MFC对话框扩展区域显示(可伸缩对话框区域)_第1张图片

二、在OnInitDialog()中添加获取区域代码:

.h头文件
/// 成员变量
CRect m_rect; //黑色区域 + 红色区域
CRect m_rtFace; // 黑色区域

GetWindowRect(&m_rect);
    /// IDC_STATIC_TITLE,静态文本Static的ID
GetDlgItem(IDC_STATIC_TITLE)->GetWindowRect(&m_rtFace);

OnBnClickedButton();//设置初始区域显示,否则包含扩展区域

三、设置按钮的扩展实现

void CDlg::OnBnClickedButton()
{
    // TODO: Add your control notification handler code here
    CString str;

    if (GetDlgItemText(IDC_BUTTON2, str), str == _T("设置>>"))
        SetDlgItemText(IDC_BUTTON2, _T("设置<<"));
    else
        SetDlgItemText(IDC_BUTTON2, _T("设置>>"));

    CRect rtSmall;
    rtSmall.SetRectEmpty();
    if (rtSmall.IsRectEmpty())
    {
        rtSmall.left = m_rect.left;
        rtSmall.top = m_rect.top;
        rtSmall.right = m_rtFace.right+20;
        rtSmall.bottom = m_rect.bottom;
    }
    if (str == "设置<<")
    {
        SetWindowPos(NULL, 0, 0, rtSmall.Width(), rtSmall.Height(), SWP_NOMOVE | SWP_NOZORDER);
    }
    else
    {
        SetWindowPos(NULL, 0, 0, m_rect.Width(), m_rect.Height(), SWP_NOMOVE | SWP_NOZORDER);
    }

四、效果实现图

扩展区域可以扩展与收缩。

初始界面:
MFC对话框扩展区域显示(可伸缩对话框区域)_第2张图片

点击设置按钮后:
MFC对话框扩展区域显示(可伸缩对话框区域)_第3张图片

你可能感兴趣的:(C++)