コード例 #1
0
ファイル: ControlBase.cpp プロジェクト: cubemoon/DuiVision
// 键盘事件处理
BOOL CControlBase::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
{
	if(!m_bIsVisible || !m_bRresponse) return false;
	
	BOOL bRresponse = false;
	// 判断当前活动控件
	if(m_pControl && m_pControl->OnKeyDown(nChar, nRepCnt, nFlags))
	{
		return true;
	}

	// 控件自身是否可以处理此事件
	if(OnControlKeyDown(nChar, nRepCnt, nFlags))
	{
		return true;
	}

	// 此控件没有处理,则遍历子控件看是否能处理
	for (size_t i = 0; i < m_vecControl.size(); i++)
	{
		CControlBase * pControlBase = m_vecControl.at(i);
		if (pControlBase && pControlBase->OnKeyDown(nChar, nRepCnt, nFlags))
		{
			return true;
		}
	}

	return false;
}
コード例 #2
0
ファイル: DlgPopup.cpp プロジェクト: blueantstudio/DuiVision
void CDlgPopup::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
{
	// 当前控件是否能处理
	if (m_pControl && m_pControl->OnKeyDown(nChar, nRepCnt, nFlags))
	{
		return;
	}
	
	// 子控件是否能处理
	for (size_t i = 0; i < m_vecControl.size(); i++)
	{
		CControlBase * pControlBase = m_vecControl.at(i);
		if (pControlBase && pControlBase->OnKeyDown(nChar, nRepCnt, nFlags))
		{
			return;
		}	
	}

	if(OnControlKeyDown(nChar, nRepCnt, nFlags))
	{
		return;
	}

	CWnd::OnKeyDown(nChar, nRepCnt, nFlags);
}
コード例 #3
0
// 键盘事件处理
BOOL CControlBase::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
{
	if(!m_bIsVisible || !m_bRresponse) return false;
	
	BOOL bRresponse = false;
	// 判断当前活动控件
	if(m_pControl && m_pControl->OnKeyDown(nChar, nRepCnt, nFlags))
	{
		return true;
	}

	// 控件自身是否可以处理此事件
	if(OnControlKeyDown(nChar, nRepCnt, nFlags))
	{
		// 发送键盘按下DUI消息
		if(m_bDuiMsgKeyDown)
		{
			SendMessage(MSG_KEY_DOWN, (WPARAM)nChar, (LPARAM)nFlags);
		}
		return true;
	}

	// 此控件没有处理,则遍历子控件看是否能处理
	for (size_t i = 0; i < m_vecControl.size(); i++)
	{
		CControlBase * pControlBase = m_vecControl.at(i);
		if (pControlBase && pControlBase->OnKeyDown(nChar, nRepCnt, nFlags))
		{
			// 发送键盘按下DUI消息
			if(m_bDuiMsgKeyDown)
			{
				SendMessage(MSG_KEY_DOWN, (WPARAM)nChar, (LPARAM)nFlags);
			}
			return true;
		}
	}

	// 发送键盘按下DUI消息
	if(m_bDuiMsgKeyDown)
	{
		SendMessage(MSG_KEY_DOWN, (WPARAM)nChar, (LPARAM)nFlags);
	}

	return false;
}