schleifenproblem



  • hallo,
    ich habe folgendes problem:
    ich frage ueber eine schleife ab, ob ein button gedreuckt wird

    case WM_COMMAND:
    		{
    			for(i = 0; i<= NUM; i++)
    
    			if(lParam == (LPARAM)hwndButton[i])
    			{
    				if(HIWORD(wParam) == BN_CLICKED)
    				{
    					status_text[i] = !status_text[i];
    					InvalidateRect(hWnd, &rect, true);
    				}
    			}
    
    			return 0;
    		}
    

    wenn der button gedrueckt wurde, dann negiere ich eine boolsche variable. jetzt moechte ich noch andere boolsche variablen die ungleich dem wert des buttons sind, auf false setzen. ich komme einfach nicht weiter. kann mir jemand helfen?? 😕



  • Habe ich das richtig verstanden, dass du dann alle anderen Elemente des Arrays (außer i) auf false setzen willst? Falls ja, dann könntest du dir einfach das i merken und dann in einer 2. for Schleife alle anderen auf false setzen 🙂



  • koenntest du mir mal einen beispielcode posten, ich bekomm das ganze nicht gebacken, hab schon alles durchgespielt, hab sogar schon einen blauen bildschirm hinbekommen...



  • keiner eine idee??



  • So irgendwie (ungetestet):

    case WM_COMMAND:
            {
                int found = -1;
                for(i = 0; i<= NUM; i++)
                {
                    if((HWND)lParam == hwndButton[i])
                    {
                        if(HIWORD(wParam) == BN_CLICKED)
                        {
                            found = i;
                            status_text[i] = !status_text[i];
                        }
                    }
                }
                if(found >= 0)
                {
                    for(i = 0; i<= NUM; i++)
                    {
                        if(i != found)
                        {
                            status_text[i] = false;
                        }
                    }
                    InvalidateRect(hWnd, &rect, true);
                }
    
                return 0;
            }
    


  • arf, thx, ich hatte wieder mal diesen tunnelblick.


Anmelden zum Antworten