Hypercell ein ] Hypercell aus ] Zeige Navigation ] Verstecke Navigation ]
c++.de  
   
Forentreff 2012     
Bücher-Shop mit Amazon (Buchkategorien)C++ : Referenzen zu C++ : C++ Builder : Visual C++ : C# : Java : Spieleprogrammierung : Systemprogrammierung Linux : Software-Entwicklung : .NET : Compilertechnik : Algorithmen & Datenstrukturen : Objektorientierung : Entwurfsmuster : UML : eXtreme Programming : Scrum : Projektmanagement : Software-Testing : Datenbanken : Tom DeMarco : Dilbert : User Friendly
C/C++ Forum :: WinAPI ::  c winapi ListBox MultiSelect  
Gehen Sie zu Seite Zurück  1, 2
  Zeige alle Beiträge auf einer Seite
Auf Beitrag antworten
Autor Nachricht
c_flo
Mitglied

Benutzerprofil
Anmeldungsdatum: 20.01.2012
Beiträge: 14
Beitrag c_flo Mitglied 18:57:53 28.01.2012   Titel:              Zitieren

kann niemand helfen??
:( :rolleyes:

_________________
...
@rT!f@Ct
Mitglied

Benutzerprofil
Anmeldungsdatum: 19.04.2007
Beiträge: 451
Beitrag @rT!f@Ct Mitglied 20:07:17 28.01.2012   Titel:              Zitieren

C/C++ Code:
1
2
3
4
5
6
7
8
9
10
1
2
3
4
5
6
7
8
9
10
bool GetMultiSelectionListboxItemIndices(HWND listview, std::vector<int>& items)
{
    LRESULT count = SendMessage(listview, LB_GETSELCOUNT, 0, 0);
    if(count==0 || count==LB_ERR)
        return false;
    items.resize(count);
    LRESULT res = SendMessage(listview, LB_GETSELITEMS, items.size(), reinterpret_cast<LPARAM>(&items[0]));

    return res!=LB_ERR;
}
C/C++ Code:
1
2
3
4
5
6
7
8
9
10
bool GetMultiSelectionListboxItemIndices(HWND listview, std::vector<int>& items)
{
LRESULT count = SendMessage(listview, LB_GETSELCOUNT, 0, 0);
if(count==0 || count==LB_ERR)
return false;
items.resize(count);
LRESULT res = SendMessage(listview, LB_GETSELITEMS, items.size(), reinterpret_cast<LPARAM>(&items[0]));

return res!=LB_ERR;
}
C/C++ Code:
1
2
3
4
5
6
7
8
9
10
bool GetMultiSelectionListboxItemIndices(HWND listview, std::vector<int>& items)
{
    LRESULT count = SendMessage(listview, LB_GETSELCOUNT, 0, 0);
    if(count==0 || count==LB_ERR)
        return false;
    items.resize(count);
    LRESULT res = SendMessage(listview, LB_GETSELITEMS, items.size(), reinterpret_cast<LPARAM>(&items[0]));

    return res!=LB_ERR;
}


in zeile 3 wird dir die anzahl der markierten elemente zurückgegeben
in zeile 4 wird abgefragt ob überhaupt elemenet markiert sind oder ob die listbox nicht eine single-selection list box ist, dann gibt sie nämlich LB_ERR zurück

in zeile 6 wird die größe des bereiches festgelegt der später die markierten (nr) der listbox enthält.

in zeile 7 wird dir der bereich gefüllt, mit den nr der elemente die in der listbox markiert sind.

was dir letzten endes in der funktion GetMultiSelectionListboxItemIndices(..., std::vector<int>& items) zurückgegeben wird.

die nr die jetzt in items stehn, kannst du dazu verwenden abzufragen welchen text das jeweils markierte element hat...

noch fragen?

_________________
@rT!f@Ct
c_flo
Mitglied

Benutzerprofil
Anmeldungsdatum: 20.01.2012
Beiträge: 14
Beitrag c_flo Mitglied 00:34:54 29.01.2012   Titel:              Zitieren

danke das hat mir geholfen :)

noch eine frage:
welche bibliotheken muss ich einbinden (lässt sich nicht kompilieren...)

und in zeile 7 verstehe ich das letzte parameter nicht:

C/C++ Code:
reinterpret_cast<LPARAM>(&items[0])
C/C++ Code:
reinterpret_cast<LPARAM>(&items[0])
C/C++ Code:
reinterpret_cast<LPARAM>(&items[0])


reinterpret_cast?? :confused:

_________________
...


Zuletzt bearbeitet von c_flo am 00:50:59 29.01.2012, insgesamt 1-mal bearbeitet
Thorgrim
Unregistrierter




Beitrag Thorgrim Unregistrierter 11:31:51 29.01.2012   Titel:              Zitieren

Möchtest du nun in C oder C++ programmieren? Was auch immer, ein wenig Eigeninitiative ist auf jeden Fall angebracht.

std::vector, reinterpret_cast, LB_GETCOUNT, LB_GETSELITEMS.

Wie aus den ersten google-Treffern ersichtlich wird, bist du auf der Suche nach C++-Themen sehr gut bei cplusplus.com und bei WinAPI-Themen bei MSDN aufgehoben.
c_flo
Mitglied

Benutzerprofil
Anmeldungsdatum: 20.01.2012
Beiträge: 14
Beitrag c_flo Mitglied 17:41:33 03.02.2012   Titel:              Zitieren

reinterpret_cast ist doch ein c++ befehl
ich programmiere aber c

desswegen auch die frage mit der bibliothek


kann ich eine listbox mit MultiSelectauch auch in c auslesen?

:)

_________________
...
C/C++ Forum :: WinAPI ::  c winapi ListBox MultiSelect  
Gehen Sie zu Seite Zurück  1, 2
Auf Beitrag antworten

Zeige alle Beiträge auf einer Seite




Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Sie können Beiträge in dieses Forum schreiben.
Sie können auf Beiträge in diesem Forum antworten.
Sie können Ihre Beiträge in diesem Forum nicht bearbeiten.
Sie können Ihre Beiträge in diesem Forum nicht löschen.
Sie können an Umfragen in diesem Forum nicht mitmachen.

Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme

c++.de ist Teilnehmer des Partnerprogramms von Amazon Europe S.à.r.l. und Partner des Werbeprogramms, das zur Bereitstellung eines Mediums für Websites konzipiert wurde, mittels dessen durch die Platzierung von Werbeanzeigen und Links zu amazon.de Werbekostenerstattung verdient werden kann.

Die Vervielfältigung der auf den Seiten www.c-plusplus.de, www.c-plusplus.info, www.c-sar.de, www.c-plusplus.net und www.baeckmann.de enthaltenen Informationen ohne eine schriftliche Genehmigung des Seitenbetreibers ist untersagt (vgl. §4 Urheberrechtsgesetz). Die Nutzung und Änderung der vorgestellten Strukturen und Verfahren in privaten und kommerziellen Softwareanwendungen ist ausdrücklich erlaubt, soweit keine Rechte Dritter verletzt werden. Der Seitenbetreiber übernimmt keine Gewähr für die Funktion einzelner Beiträge oder Programmfragmente, insbesondere übernimmt er keine Haftung für eventuelle aus dem Gebrauch entstehenden Folgeschäden.