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

来源:互联网 发布:各国战争潜力知乎 编辑:程序博客网 时间:2024/06/05 11:37

一、新建对话框程序

对话框布局为:

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

这里写图片描述

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

.h头文件/// 成员变量CRect m_rect; //黑色区域 + 红色区域CRect m_rtFace; // 黑色区域GetWindowRect(&m_rect);    /// IDC_STATIC_TITLE,静态文本Static的IDGetDlgItem(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);    }

四、效果实现图

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

初始界面:
这里写图片描述

点击设置按钮后:
这里写图片描述

0 0
原创粉丝点击