Exemplo n.º 1
0
BOOL CMenuItem::SetCheck(BOOL bCheck)
{
	if(!m_bSelect) return false;

	if (m_bIsDisable)
	{
		return m_bDown;
	}

	BOOL bDown = m_bDown;
	m_bDown = bCheck;
	if(m_bDown)
	{
		m_enButtonState = enBSDown;
	}
	else
	{
		 m_enButtonState = enBSNormal;
	}
	if(m_bDown != bDown)
	{
		// 如果组名非空,说明是radiobutton组,则刷新同一个组下面其他radiobtn
		if(!m_strGroupName.IsEmpty())
		{
			ResetGroupCheck();
		}
		UpdateControl();
	}
	return m_bDown;
}
Exemplo n.º 2
0
// 设置选择状态
BOOL CDuiRadioButton::SetCheck(BOOL bCheck)
{
	if (m_bIsDisable)
	{
		return m_bDown;
	}

	BOOL bDown = m_bDown;
	m_bDown = bCheck;
	if(m_bDown)
	{
		m_enButtonState = enBSDown;
	}
	else
	{
		 m_enButtonState = enBSNormal;
	}
	if(m_bDown != bDown)
	{
		// 刷新同一个组下面其他radiobtn
		ResetGroupCheck();
		UpdateControl();
	}
	return m_bDown;
}
Exemplo n.º 3
0
BOOL CDuiRadioButton::OnControlLButtonUp(UINT nFlags, CPoint point)
{
	enumButtonState buttonState = m_enButtonState;
	if (!m_bIsDisable)
	{
		if(m_rc.PtInRect(point))
		{
			if(m_bMouseDown)
			{
				m_bDown = true;
				// 刷新同一个组下面其他radiobtn
				ResetGroupCheck();
				SendMessage(MSG_BUTTON_UP, 0, 0);
			}
			if(m_bDown)
			{
				m_enButtonState = enBSHoverDown;
			}
			else
			{
				m_enButtonState = enBSHover;
			}			
		}
		else
		{
			if(m_bDown)
			{
				m_enButtonState = enBSDown;
			}
			else
			{
				m_enButtonState = enBSNormal;
			}			
		}
	}
	m_bMouseDown = false;
	
	if(buttonState != m_enButtonState)
	{
		UpdateControl();
		return true;
	}
	return false;
}
Exemplo n.º 4
0
BOOL CMenuItem::OnControlLButtonUp(UINT nFlags, CPoint point)
{
	bool bSend = false;
	BOOL bbDown = FALSE;
	bool bSelect = false;
	enumButtonState buttonState = m_enButtonState;
	if (!m_bIsDisable)
	{
		if(m_rc.PtInRect(point))
		{
			if(m_bSelect)
			{
				if(m_bDown)
				{
					m_enButtonState = enBSHoverDown;
				}
				else
				{
					m_enButtonState = enBSHover;
				}
				if(m_bMouseDown)
				{
					// 如果组名非空,说明是radiobutton组,则刷新同一个组下面其他radiobtn
					if(!m_strGroupName.IsEmpty())
					{
						m_bDown = true;
						ResetGroupCheck();
					}else
					{
						m_bDown = !m_bDown;
					}
					bSend = false;
					bbDown = m_bDown;
					bSelect = true;
				}				
			}
			else
			{
				m_enButtonState = enBSHover;
				bSend = true;
				
			}
		}
		else
		{
			if(m_bDown)
			{
				m_enButtonState = enBSDown;
			}
			else
			{
				m_enButtonState = enBSNormal;
			}			
		}
	}
	m_bMouseDown = false;
	
	if(buttonState != m_enButtonState)
	{
		UpdateControl();

		if(bSend)
		{
			SendMessage(MSG_BUTTON_UP, bbDown, bSelect);
		}
		return true;
	}
	return false;
}
Exemplo n.º 5
0
// 鼠标左键放开事件处理
BOOL CMenuItem::OnControlLButtonUp(UINT nFlags, CPoint point)
{
	bool bSend = false;
	BOOL bbDown = FALSE;
	bool bSelect = false;
	enumButtonState buttonState = m_enButtonState;
	if (!m_bIsDisable)
	{
		if(m_rc.PtInRect(point))
		{
			if(m_bSelect)
			{
				if(m_bDown)
				{
					m_enButtonState = enBSHoverDown;
				}
				else
				{
					m_enButtonState = enBSHover;
				}
				if(m_bMouseDown)
				{
					// 如果组名非空,说明是radiobutton组,则刷新同一个组下面其他radiobtn
					if(!m_strGroupName.IsEmpty())
					{
						m_bDown = true;
						ResetGroupCheck();
					}else
					{
						m_bDown = !m_bDown;
					}
					bSend = false;
					bbDown = m_bDown;
					bSelect = true;
				}				
			}
			else
			{
				m_enButtonState = enBSHover;
				bSend = true;
				
			}
		}
		else
		{
			// 如果存在弹出菜单,并且鼠标不在弹出菜单范围内,则关闭父菜单
			if(m_bIsPopup)
			{
				// 父菜单对象设置回自动关闭
				CDuiMenu* pParentMenu = GetParentMenu();
				if(pParentMenu)
				{
					pParentMenu->SetAutoClose(TRUE);
					pParentMenu->SetForegroundWindow();
				}
			}

			if(m_bDown)
			{
				m_enButtonState = enBSDown;
			}
			else
			{
				m_enButtonState = enBSNormal;
			}			
		}
	}
	m_bMouseDown = false;
	
	if(buttonState != m_enButtonState)
	{
		UpdateControl();

		if(bSend)
		{
			SendMessage(MSG_BUTTON_UP, bbDown, bSelect);
		}
		return true;
	}
	return false;
}