mfc_poly_1 - 8BitsCoding/RobotMentor GitHub Wiki


μ—°μ†λœ λ„€λͺ¨ λ„ν˜• 쀑 ν•˜λ‚˜λ₯Ό μ„ νƒν•˜λ©΄ 색상을 λ³€κ²½ν•˜κ³  μ‹Άλ‹€.

// Dlg.h
CBrush m_select_brush, m_unselect_brush;
CPen m_select_pen, m_unselect_pen;
int m_index = -1;		// 0 ~ 5
void CMFCApplication1Dlg::OnLButtonDown(UINT nFlags, CPoint point)
{
	if (point.y < 100) {
		/*
		m_index = -1;

		for (int i = 0; i < 6; i++) {
			if (point.x < 100 + i * 100) {
				m_index = i;
				break;
			}
		}
		*/

		// μ½”λ“œλ₯Ό κ°„λ‹¨νžˆ
		m_index = point.x / 100;
		if (m_index >= 6) m_index = -1;

		Invalidate(TRUE);
	}

	CDialogEx::OnLButtonDown(nFlags, point);
}
void CMFCApplication1Dlg::OnPaint()
{
	CPaintDC dc(this); // 그리기λ₯Ό μœ„ν•œ λ””λ°”μ΄μŠ€ μ»¨ν…μŠ€νŠΈμž…λ‹ˆλ‹€.

	if (IsIconic())
	{
        // ...
	}
	else
	{
		CBrush * p_old_brush = dc.SelectObject(&m_unselect_brush);
		CPen * p_old_pen = dc.SelectObject(&m_unselect_pen);

		for (int i = 0; i < 6; i++) {
			dc.Rectangle(i*100, 0, 101+i*100, 100);
		}

		if (m_index != -1) {
			dc.SelectObject(&m_select_brush);
			dc.SelectObject(&m_select_pen);

			dc.Rectangle(m_index * 100, 0, 101 + m_index * 100, 100);
		}
		
		dc.SelectObject(p_old_brush);
		dc.SelectObject(p_old_pen);

		// CDialogEx::OnPaint();
	}
}