MFC对话框可扩展区域显示

1.在Extend.h文件中加入

CRect m_rectOrig;
CRect m_rectSmall;

2.在Extend.cpp的OnInitDialog()函数中加入

SetDlgItemText(IDC_BTN_TRANSFER,"<< 扩展");
CRect rectSeparator;
GetWindowRect(&m_rectOrig);
GetDlgItem(IDC_SEPARATOR)->GetWindowRect(&rectSeparator);

m_rectSmall.left = m_rectOrig.left;//将m_rectSmall、m_rectOrig设置成对话框的数据成员,方便后面的伸缩事件使用
m_rectSmall.top = m_rectOrig.top;
m_rectSmall.right = m_rectOrig.right;
m_rectSmall.bottom = rectSeparator.bottom;
SetWindowPos(NULL,0,0,m_rectSmall.Width(),m_rectSmall.Height(),
		SWP_NOMOVE|SWP_NOZORDER);

3.添加扩展按钮函数

void CExtendDlg::OnBnClickedBtnTransfer()
{
	// TODO: 在此添加控件通知处理程序代码
	CString str;
	if(GetDlgItemText(IDC_BTN_TRANSFER,str),str == ">> 隐藏")
	{
		SetDlgItemText(IDC_BTN_TRANSFER,"<< 扩展");
	}
	else
	{
		SetDlgItemText(IDC_BTN_TRANSFER,">> 隐藏");
	}

	if(str == ">> 隐藏")
	{
		SetWindowPos(NULL,0,0,m_rectSmall.Width(),m_rectSmall.Height(),
			SWP_NOMOVE|SWP_NOZORDER);
	}
	else
	{
		SetWindowPos(NULL,0,0,m_rectOrig.Width(),m_rectOrig.Height(),
			SWP_NOMOVE|SWP_NOZORDER);
	}
}

4.IDC_BTN_TRANSFER为按键的ID,IDC_SEPARATOR为控件Picture_Control的ID,其中Picture_Control作为分割线,把Picture_Control控件拉成一条直线,属性中Visible设为false,sunken设置为true.

点击“扩展”前

点击“扩展”后

猜你喜欢

转载自blog.csdn.net/luo_aiyang/article/details/81362469