//*****************************************************************************************
void CBCGPMenuButton::OnLButtonDown(UINT nFlags, CPoint point) 
{
	if (m_bMenuIsActive)
	{
		Default ();
		return;
	}

	m_bClickOnMenu = TRUE;

	if (m_bDefaultClick)
	{
		CRect rectClient;
		GetClientRect (rectClient);

		CRect rectArrow = rectClient;
		rectArrow.left = rectArrow.right - CBCGPMenuImages::Size ().cx - nImageHorzMargin;

		if (!rectArrow.PtInRect (point))
		{
			m_bClickOnMenu = FALSE;
			m_nMenuResult = 0;
			CBCGPButton::OnLButtonDown (nFlags, point);
			return;
		}
	}

	SetFocus ();
	OnShowMenu ();
}
//*****************************************************************************************
void CBCGPMenuButton::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags) 
{
	if (nChar == VK_SPACE || nChar == VK_DOWN)
	{
		m_bClickOnMenu = TRUE;
		OnShowMenu ();
		return;
	}
	
	CButton::OnKeyDown(nChar, nRepCnt, nFlags);
}
//***************************************************************************************
BOOL CBCGPMenuButton::PreTranslateMessage(MSG* pMsg) 
{
	if (pMsg->message == WM_KEYDOWN &&
		pMsg->wParam == VK_RETURN &&
		CBCGPPopupMenu::GetActiveMenu () == NULL)
	{
		m_bClickOnMenu = TRUE;
		OnShowMenu ();
		return TRUE;
	}
	
	return CBCGPButton::PreTranslateMessage(pMsg);
}
示例#4
0
BOOL CMenuButton::PreTranslateMessage(MSG* pMsg)
{
	if(pMsg->message == WM_KEYDOWN)
	{
		switch(pMsg->wParam)
		{
		case VK_F4:
			OnShowMenu();
			return TRUE;
		}
	}

	return CMFCMenuButton::PreTranslateMessage(pMsg);
}
示例#5
0
BOOL CMenuButton::PreTranslateMessage(MSG* pMsg)
{
	if(pMsg->message == WM_KEYDOWN)
	{
		switch(pMsg->wParam)
		{
		case VK_RETURN:
		case VK_SPACE:
			if (m_bMenuIsActive && !m_bRealMenuIsActive)
			{
				GetParent()->SendMessage(WM_COMMAND, MAKEWPARAM(GetDlgCtrlID(), BN_CLICKED), (LPARAM)m_hWnd);
				return TRUE;
			}
		case VK_F4:
			OnShowMenu();
			return TRUE;
		}
	}

	return CMFCMenuButton::PreTranslateMessage(pMsg);
}