SetSelectionMark geht nicht?



  • hallo liebe coder,

    hier mein kleines problemchen....

    ich würde gerne in meinem CListControl durch einen Knopfdruck eine bestimmte position hervorheben (also als ob mit der maus ausgewählt wurde)...

    wenn ich drauf klicke kennt ihr ja den effekt... blau hervorgehoben....

    ich dachte das kann ich auch mit

    GetSelectionMark ( int index );
    

    einfach auswählen lassen... aber es funktioniert nicht...
    wo liegt der fehler bzw. welche fkt. erfüllt meinen wunsch ?
    (habe die members alle durch....

    vielen dank im voraus...



  • Mit SetSelectionMark ist nicht die visuelle Markierung gemeint, dafür musst Du SetItemState benutzen



  • BOOL SetItemState(
       int nItem,
       LVITEM* pItem 
    );
    

    heisst es da... was ist denn LVITEM ?
    was muss ich da einsetzen 🙂



  • LVITEM ist eine Struktur, die Du füllen und an SetItemState übergeben kannst.
    Oder Du gibst die Werte dafür einzeln an ohne diese Struktur.

    Auf der Seite ist ein Link zu LVITEM, da siehst Du mehr drüber...



  • hab mir das gerade angeschaut....

    BOOL SetItemState(
       int nItem,
       UINT nState,
       UINT nMask 
    );
    

    mit

    m_ctrlList.SetItemState(1,0,0);
    

    klappt es nicht... 😕



  • Hast Du Dir die Doku zu LVITEM durchgelesen und geguckt was nState und nMask überhaupt bedeutet bzw. welche vordefinierten Werte angegeben werden können/müssen?



  • ja, aber aus irgend einem grunde macht er es nicht...
    werde eine ausweichmöglichkeit nehmen...



  • x-coder44 schrieb:

    ja, aber aus irgend einem grunde macht er es nicht...

    Vermutlich weil du die falschen Werte übergibst.

    x-coder44 schrieb:

    werde eine ausweichmöglichkeit nehmen...

    Genau. Wenn du nicht weißt, an welchem Ende man einen Hammer anfasst, nimmst du am besten einen anderen Hammer 😉

    Hint: LVIS_SELECTED



  • habe das jetzt folgendermaßen realisiert:

    void CRegressionDlg::OnBnClickedButtonDelete()
    	{
    		if ( m_ctrlGraph.GetPosition() != 0 )
    		{
    			// Ist eine Position überhaupt gewählt worden?
    			if ( m_ctrlList.GetSelectedCount() != 0 )
    			{
    				// Loescht Punkt aus der ControlList
    				m_ctrlList.DeleteItem( int(m_ctrlGraph.GetPosition())-1 );
    				// Loescht Punkt aus der Struktur (XY)
    				m_ctrlGraph.DelPoint( (int(m_ctrlGraph.GetPosition())-1) );
    				// Zeichne neu
    				m_ctrlGraph.ReDraw();
    			}
    			else
    			{
    				MessageBox("Es ist kein Feld ausgewählt\noder keine Daten zum Löschen vorhanden","Hinweiß", MB_OK);
    			};
    		};
    	}
    


  • Das hat jetzt aber mit deiner ursprünglichen Frage irgendwie gar nichts zu tun, oder?

    P.S.:
    Gibt's auch Hinschwarz?



  • ne, aber was ist denn hinschwarz ??? 😃 (lach)



  • ja geil.... jetzt verstehe ich....

    du meinst den rechtschreibfehler.... "hinweis".... oki doki....
    na da hast du mir doch schonmal ne ganze menge geholfen.... danke 😉


Anmelden zum Antworten