扩展和收缩对话框

折叠状态对话框 对话框处于展开状态 有时候,在一个对话框中只显示重要的部分,并使用一个通常标记为“更多”的按钮,当用户点击它时展开对话框可能会很有用。一旦对话框被展开,“更多”按钮就会显示“更少”,一旦用户点击“更少”按钮,对话框就会缩小到初始大小。 CExpandDialog类为您执行此操作。您所要做的就是将DialogExpander.cpp文件添加到您的项目中,并对对话框类和模板进行一些小的更改。 修改你的对话框类的头文件,像这样:复制Code

/////////////////////////////////////////////////////////////////////////////
// CExpandDialogDlg dialog

#include "DialogExpander.h"    //<<<< add here

...
class CExpandDialogDlg : public CDialog
{
...
protected:
...
    CExpandDialog m_ExpandDialog ;    //<<<< add here
...
}

修改OnInitDialog函数对话框类如下:复制Code

BOOL CExpandDialogDlg::OnInitDialog()
{
    CDialog::OnInitDialog();


    m_ExpandDialog.Initialize(this, FALSE, IDC_MOREBUTTON, 
                    IDC_SHRINKMARK, IDC_EXPANDEDMARK,
                    IDC_LESSTEXT) ; //<<<< add here

    ...
}

在类向导中,为“更多”按钮添加一个处理程序(例如OnMore()),并像这样修改它:复制Code

void CExpandDialogDlg::OnMore() 
{
    m_ExpandDialog.OnExpandButton() ;
}

对话框模板必须包含两个特殊的静态控件。当对话框处于折叠状态时,显示对话框底部的位置(下面的图例为1),当对话框处于扩展状态时,显示在“多/少”按钮上的字符串(下面的图例为2)。这两个控件将不会显示,因为CExpandDialog类将自动隐藏它们。 本文转载于:http://www.diyabc.com/frontweb/news6612.html

原文地址:https://www.cnblogs.com/Dincat/p/13467395.html