onrbuttondown(uint nflags, cpoint point).txt

来自「用VC++设计与实现扫雷系统」· 文本 代码 · 共 53 行

TXT
53
字号

//in file : MineWnd.cpp

void CMineWnd::OnRButtonDown(UINT nFlags, CPoint point)
{
	//笑脸图按钮所在的区域
	CRect rcBtn(m_uBtnRect[1], 15, m_uBtnRect[2], 39)
	//雷区所在的区域
	CRect rcMineArea(MINE_AREA_LEFT, MINE_AREA_TOP,MINE_AREA_LEFT + m_uXNum * MINE_WIDTH,
	MINE_AREA_TOP + m_uYNum * MINE_HEIGHT);

	m_bLRBtnDown = FALSE;
	if (rcMineArea.PtInRect(point))
	{
		//点击雷区域
		if (m_uGameState == GS_RUN)
		{
			m_pNewMine = GetMine(point.x, point.y);
			if (!m_pNewMine) return;
			//判断当前状态是否为左右鼠标同时按下
			if (nflags == (MK_LBUTTON | MK_RBUTTON))
			{
				m_bLRBtnDown = TRUE;
				OnLRBtnDown(m_pNewMine->uRow , m_pNewMine->uCol);
			}
			else
			{
				switch(m_pNewMine->uState)
				{
					case STATE_NORMAL;
						m_pNewMine->uState = STATE_FLAG;
						m_pNewMine->uOldState = STATE_FLAG;
						m_nLeaveNum--;
						break;
					case STATE_FLAG;
						m_pNewMine->uState = STATE_DICEY;
						m_pNewMine->uOldState = STATE_DICEY;
						m_nLeaveNum++;
						break;
					case STATE_DICEY;
						m_pNewMine->uState = STATE_NORMAL;
						m_pNewMine->uOldState = STATE_NORMAL;
						break;
				default:
						break;
				}
			}
			Invalidate();  //重绘
		}
	}
	CWnd::OnRButtonDown(nFlags, point);
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?