Problem mit CString Variable



  • Poste doch einfach mal deine Fehlermeldung, wenn Du unsigned int benutzt.

    So wie Unix-Tom das geschrieben hat, funktioniert es definitiv.

    es heißt übrigens nicht

    int

    sondern

    unsigned int



  • .......
    {
        unsigned int m_icon = 0; 
        unsigned int m_button = 0;   
    
        UpdateData(TRUE); 
    
        switch(m_rnone) 
        { 
        case 0:  m_icon = 0;
                 break; 
        case 1:  m_icon = MB_ICONINFORMATION; 
                 break; 
        case 2:  m_icon = MB_ICONSTOP; 
                 break; 
        case 3:  m_icon = MB_ICONQUESTION; 
                 break; 
        } 
    
        switch(m_rok) 
        { 
        case 0: m_button = MB_OK; // Ich glaub das sollte standart sein, oder!(MB_OK == 0x0L)
                break; 
        case 1: m_button = MB_OKCANCEL; 
                break; 
        case 2: m_button = MB_YESNO;
                break; 
        case 3: m_button = MB_YESNOCANCEL; 
                break; 
        } 
    
        UpdateData(FALSE);
    
        MessageBox(m_text, m_titel, m_icon | m_button); 
    }
    

    Hab das nicht getestet sondern nur mal schnell geändert!

    Bye, Sigi



  • Super jatzt hats geklappt! Ich hab zwar den Befehl noch ein bisschen um schreiben aber es ging:

    int m_icon = 0; 
        int m_button = 0;   
    
    	UpdateData(TRUE);
    	switch(m_rnone)
    	{
    	case 0:
    	m_icon = 0;
    	UpdateData(FALSE);
    	break;
    	case 1:
    	m_icon = MB_ICONINFORMATION;
    	UpdateData(FALSE);
    	break;
    	case 2:
    	m_icon = MB_ICONSTOP;
    	UpdateData(FALSE);
    	break;
    	case 3:
    	m_icon = MB_ICONQUESTION;
    	UpdateData(FALSE);
    	break;
    	}
    	switch(m_rok)
    	{
    	case 0:
    	m_button = 0;
    	UpdateData(FALSE);
    	break;
    	case 1:
    	m_button = MB_OKCANCEL;
    	UpdateData(FALSE);
    	break;
    	case 2:
    	m_button = MB_YESNO;
    	UpdateData(FALSE);
    	break;
    	case 3:
    	m_button = MB_YESNOCANCEL;
    	UpdateData(FALSE);
    	break;
    	}
    
    	MessageBox(m_text,	m_titel, m_icon | m_button);
    

    Super ich freu mich danke für eure Hilfe;



  • Du solltest aber trotzdem mal Zuhören ( oder genauer lesen ).😮
    Man nutzt für sowas nicht int sonder unsigned int. Das ist doch nicht so schwer.
    Sobald du ein negativen Wert zurückbekommst, knallt es (woher der negative Wert auch immer kommen mag).
    Und UpdateData() benötigst Du hier überhaupt nicht. Die kannst Du getrost alle löschen.



  • Trikor schrieb:

    Und UpdateData() benötigst Du hier überhaupt nicht. Die kannst Du getrost alle löschen.

    Das stimmt so nicht. Das UpdateData(TRUE) am Anfang braucht er. Die ganzen anderen aber nciht, das stimmt.



  • dEUs schrieb:

    Das stimmt so nicht. Das UpdateData(TRUE) am Anfang braucht er. Die ganzen anderen aber nciht, das stimmt.

    Hi dEUs,

    UpdateData(TRUE) benötigt er aber nur um die Werte aus m_rnone und m_rok zu holen. Das hatte aber mit dem eigentlichen Problem nichts zu tun. Oder?



  • UpdateData(TRUE) benötigt er, um die aktuellen Werte der Controls in die Membervariablen m_rnone und m_rok zu speichern, genau. Aber wenn er jetzt ALLE UpdateData wegmacht, so wie du sagtest, dann tut sein Code nicht mehr richtig. Und die UpdateData(FALSE) haben auch nix mit seinem Problem zu tun, sie sind nur überflüssig.



  • Na sag ich doch. 😃



  • Mit unsigned int habs ich versucht aber das hat ncht geklappt. Deshalb hab ich s weg gelassen.



  • Vermutlich weil BigSigi einen Schreibfehler machte

    unsinged int
    //Richtig
    unsigned int
    


  • Bin heute nachmitag einfach nicht in den Thread gekommen, sonst hätte ich den Fehler schon ausgebessert (War der Server überlastet?)! Hab eh als Info dazugeschrieben das es nicht getestet ist! 😉
    Werd ich jetzt machen!
    Achso wegen dem UpdateData! Es nach jedem case aufzurufen das hätte nur sinn wenn es eine case-Veriante gäbe in der das UpdateData nicht erwünscht wäre.
    In dem Fall ist UpdateData(FALSE) überflüßig da nur Variablen inerhalb der Funktion/Methode verändert werden (also nix was man auf dem Bildschirm updaten müßte! 🙄 ).

    MFG, Sigi


Anmelden zum Antworten