win32_step_12 - 8BitsCoding/RobotMentor GitHub Wiki


LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
	if (uMsg == WM_PAINT) {
		PAINTSTRUCT ps;
		HDC h_dc = BeginPaint(hWnd, &ps);

		for (int i = 0; i < MAX_COUNT; i++) {
			if (i == g_index) {
				HGDIOBJ h_old_brush = SelectObject(h_dc, GetStockObject(BLACK_BRUSH));
				Rectangle(h_dc, 0 + i * 100, 0, 101 + i * 100, 100);
				SelectObject(h_dc, h_old_brush);
			}
			else {
				Rectangle(h_dc, 0 + i * 100, 0, 101 + i * 100, 100);
			}
		}

		EndPaint(hWnd, &ps);
		return 0;
	}
	else if (uMsg == WM_LBUTTONDOWN) {
		UINT x = LOWORD(lParam);
		UINT y = HIWORD(lParam);

		/*
		if (x >= 0 && x < 100 && y >= 0 && y < 100) g_index = 0;
		else if (x >= 100 && x < 200 && y >= 0 && y < 100) g_index = 1;
		else if (x >= 200 && x < 300 && y >= 0 && y < 100) g_index = 2;
		*/

		// μ½”λ“œ 간단화
		if (y >= 0 && y < 100) {
			if (x >= 0 && x < 100) g_index = 0;
			else if (x < 200) g_index = 1;
			else if (x < 300) g_index = 2;
		}
		InvalidateRect(hWnd, NULL, TRUE);
	}
	else if (uMsg == WM_DESTROY) PostQuitMessage(0);

	
	return DefWindowProc(hWnd, uMsg, wParam, lParam);
}
⚠️ **GitHub.com Fallback** ⚠️