Bestimmen, auf welches Icon geklickt wurde



  • Hallo,

    ich habe folgendes Problem: ich habe einen Array vom Typ icon mit dem Namen icons. Der Typ icon besteht aus dem Namen (name) und den Koordinaten im Fenster (x,y). Wenn jetzt eine Klick-Message kommt, will ich das Icon bestimmen, auf das geklickt wurde, und dann das zugehörige Programm ausführen. Dazu werden in mousex und mousey die Mauskoordinaten übergeben. Das Problem ist allerdings, dass der if-Block nicht aufgerufen wird, obwohl ich eindeutig auf ein Icon geklickt habe. Hier der Code:

    void execute(int mousex,int mousey)
    {
    	icit it;
    	for(it=icons.begin();it!=icons.end();it++)
    	{
    		char* str;
    		if((mousex > ((*it).x)) && (mousey > ((*it).y)) && (mousex < (((*it).x)+32)) && (mousey < (((*it).y)+32)))
    		{
    			ShellExecute(0,"open",(*it).name,"",deskpath,SW_SHOW);
    		}
    	}
    }
    

    Vielleicht könnt ihr mir helfen?

    Gruß!
    Unzi



  • Lass dir doch mal die Werte ausgeben.



  • Warum erstellst Du nicht x Buttons, legst jeweils ein Icon drauf (LoadImage, BM_SETIMAGE) und schon hast Du einen Event und kannst ihn eindeutig zuordnen, nämlich wenn auf den Button geklickt wurde...

    Wenn Du keine Buttons magst erstellst Du ein ICON-static und setzt den Style NOTIFY, und wieder bekommst Du eine eindeutige Identifizierung, welches Icon geklickt wurde...



  • @MFK: Werte ausgeben war mir zu umständlich, weil er mich mit x-Tausend Messageboxen überflutet hätte.

    @Hepi: Gute Idee! Werd ich mich gleich mal dranstürzen.

    Gruß!
    Unzi


Anmelden zum Antworten