C Windows Programm items klickbar machen?!

Commander

Grünschnabel
ja ich soll unter c ein windows programm machen bei dem man sachen (symbole bzw. bilder mit der maus anklicken kann).

jetzt habe ich nur ein kleines problem: wie kann ich irgendwie was anklickbar machen?!
oder muss ich die genaue mausposition abfragen und die koordinaten verwenden?
(wenn ja wie bekomme ich die genaue positon der klickbaren fläche heraus?)

schon mal danke für eure antworten ;)
 
erst mal danke für den link ;) die seite gefällt mir echt gut.

nur das meinte ich: kann ich das nur über mausposition machen oder kann ich ne art button machen der klickbar ist?

also mehr oder weniger was nicht sichbar was man anklicken kann?
weil immer ausposition abfragen ist halt etwas aufwendig :(
 
moin



Wieso ist es aufwendig die Mausposition abzufragen?
Code:
case WM_LBUTTONDOWN:
}
     pos.x = LOWORD(lParam);
     pos.y = HIWORD(lParam);

     return 0;
}

So schon isse abgefragt, und zu ermitteln welches Objekt sich dahinter verbirgt ist nciht aufwendiger.

Halt die bitte an Groß und Kleinschreibung, dann ist alles besser lesbar.


mfg
umbrasaxum
 
Zuletzt bearbeitet:
umbrasaxum hat gesagt.:
moin



Wieso ist es aufwendig die Mausposition abzufragen?
Code:
case WM_LBUTTONDOWN:
}
     pos.x = LOWORD(wParam);
     pos.y = HIWORD(wParam);

     return 0;
}

So schon isse abgefragt, und zu ermitteln welches Objekt sich dahinter verbirgt ist nciht aufwendiger.

Halt die bitte an Groß und Kleinschreibung, dann ist alles besser lesbar.


mfg
umbrasaxum


Ok dank dir :)

Ich werde es mir nochmal genau anschauen... Wenn es sowieso keine andere Möglichkeit gibt kann man es ja nur so machen.
Ich dachte nur es gibt vielleicht irgendwie noch eine andere Möglichkeit ;)
 
moin


Am besten ist es du speicherst alle "Flächen" hinter den deine "Zielobjekte" sind in einem RECT Array.

So hab ich etwas in der Art mal gemacht:
Code:
case WM_LBUTTONDOWN:
{
	RECT rDummy;

	maus.x = LOWORD(lParam);
	maus.y = HIWORD(lParam);

	for(int l=0; l<52; l++)
	{
		if( maus.x >= karte[l].posingame.x &&
			maus.x <= karte[l].posingame.x + nKarX &&
			maus.y >= karte[l].posingame.y &&
			maus.y <= karte[l].posingame.y + nKarY)
		{
			
		}
	}

	return 0;
}


mfg
umbrasaxum
 
Zurück