Example #1
0
// 重载设置控件可见性的函数,需要调用子控件的函数
void CDuiPanel::SetControlVisible(BOOL bIsVisible)
{
	__super::SetControlVisible(bIsVisible);

	// 设置每个子控件的原生Windows控件的可见性
	for (size_t i = 0; i < m_vecControl.size(); i++)
	{
		CControlBase * pControlBase = m_vecControl.at(i);
		if (pControlBase)
		{
			if(pControlBase->IsClass(_T("div")) || pControlBase->IsClass(_T("tabctrl")) || pControlBase->IsClass(_T("layout")))
			{
				// 如果子控件是容器类型控件,则调用子控件的设置可见性函数
				pControlBase->SetControlVisible(bIsVisible);
			}else
			{
				// 判断子控件当前是否可见,根据可见性设置子控件的原生控件的可见性
				// 如果是edit控件,暂时不显示原生控件,否则tab页切换时候会有问题
				BOOL bVisible = pControlBase->GetVisible();
				if(pControlBase->IsClass(CDuiEdit::GetClassName()))
				{
					bVisible = FALSE;
				}
				pControlBase->SetControlWndVisible(bVisible);
			}
		}
	}

	// 如果有插件,则设置插件的可见性
	if(m_pDuiPluginObject)
	{
		m_pDuiPluginObject->SetVisible(bIsVisible);
	}
}
Example #2
0
// 重载设置控件可见性的函数,需要调用子控件的函数
void CDuiPanel::SetControlVisible(BOOL bIsVisible)
{
	__super::SetControlVisible(bIsVisible);

	// 设置每个子控件的原生Windows控件的可见性
	for (size_t i = 0; i < m_vecControl.size(); i++)
	{
		CControlBase * pControlBase = m_vecControl.at(i);
		if (pControlBase)
		{
			if(pControlBase->IsClass(_T("div")) || pControlBase->IsClass(_T("tabctrl")))
			{
				pControlBase->SetControlVisible(bIsVisible);
			}else
			{
				// Panel可见性变化时候,只会隐藏原生控件,不主动显示原生控件
				//if(!bIsVisible)
				{
					pControlBase->SetControlWndVisible(bIsVisible);
				}
			}
		}
	}

	if(m_pDuiPluginObject)
	{
		m_pDuiPluginObject->SetVisible(bIsVisible);
	}
}