Anklicken machst du üblicherweise mit OnLButtonDown. Dann kannst du dir aus den Mauskoordinaten die entsprechende Stelle in deinem Graphen ausrechnen, änderst die Farbe für das jeweilige Segment und rufst Invalidate (oder wenn du nur einen Teil änderst, InvalidateRect) auf.
Generell würde ich das komplette Zeichnen immer nur an einer Stelle sammeln. Falls das Darstellen des Graphen langsam ist, würde ich auf Double Buffering zurückgreifen. Also den Graphen einmal irgendwohin zeichnen (z.Bsp.DIBSection) und in OnDraw dann nur ein BitBlt aufrufen.