JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=c2f227a96a4e4c87048ca930d4cb1b29Medaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Win API Tabellen

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Jonathan_Klein
Living Legend


Alter: 37
Anmeldedatum: 17.02.2003
Beiträge: 3433
Wohnort: Siegerland
Medaillen: Keine

BeitragVerfasst am: 20.06.2006, 14:00    Titel: Win API Tabellen Antworten mit Zitat

Sagen wir ich ahbe eine WinAPI Programm und möchte X Objhekte mit Y Eigenschaften anzeigen und manipulieren. dAnn brauch ich ja im Pirnzip eine Tabelle.
Nun meine frage, was man dafür am besten nimmt, der erste Ansatz wäre quasi einfach jede Menge EditFelder zu erstellen. Beim drüber nachdenken würde ich dass dann evlt. in eine Klasse kapseln, aber ich wollte lieber mal nachhören, ob man das noch schneller, einfacher und eleganter Lösen kann.
Einbauen will ich das ganze in einen Dialog den ich mit dem Ressourcen Editor (VC2003) erstellt habe. Aber man kann da ja auch einfach im Source Childwindows erstellen, von daher wäre das auch kein Problem.
_________________
https://jonathank.de/games/
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
OLiver
Super JLI'ler


Alter: 33
Anmeldedatum: 29.06.2003
Beiträge: 306
Wohnort: Jena
Medaillen: Keine

BeitragVerfasst am: 20.06.2006, 14:43    Titel: Antworten mit Zitat

ListView Control oder so hieß das Ding. (Ist das Standard-Tabellencontrol unter Windows)
_________________
http://www.sieder25.org/ (Siedler 2 - Remake)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Jonathan_Klein
Living Legend


Alter: 37
Anmeldedatum: 17.02.2003
Beiträge: 3433
Wohnort: Siegerland
Medaillen: Keine

BeitragVerfasst am: 20.06.2006, 14:59    Titel: Antworten mit Zitat

MSDN hat Folgendes geschrieben:
A list view control displays a collection of items, each consisting of an icon and a label, and provides several ways to display and arrange the items. For example, additional information about each item is displayed in columns to the right of the icon and label. Windows Explorer uses a list view control to display files.

Also mit Icons wollte ich das eignelithc nicht, eher so in der Art von mehreren Editboxen nebeneinander.
Bei dem Ressourcen Editor von 03 ist das auch sehr schön gemacht, in dem Fenster wo alle Eigenschaften aufgelistet sind. Sowas in der Art, halt nur mit mehreren Spalten.
_________________
https://jonathank.de/games/
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Fallen
JLI MVP
JLI MVP


Alter: 40
Anmeldedatum: 08.03.2003
Beiträge: 2860
Wohnort: Münster
Medaillen: 1 (mehr...)

BeitragVerfasst am: 20.06.2006, 15:13    Titel: Antworten mit Zitat

In C# heisst das im VS DataGrid, das schöne daran ist auch das man dort Knöpfe, EditBoxen, ComboBoxen, etc verwenden kann.

Evtl gibts das auch für dein WinAPI Programm, ohne dass du ne menge herumbasteln musst.
_________________
"I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse."
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
OLiver
Super JLI'ler


Alter: 33
Anmeldedatum: 29.06.2003
Beiträge: 306
Wohnort: Jena
Medaillen: Keine

BeitragVerfasst am: 20.06.2006, 15:45    Titel: Antworten mit Zitat

Zitat:

Also mit Icons wollte ich das eignelithc nicht, eher so in der Art von mehreren Editboxen nebeneinander.
Bei dem Ressourcen Editor von 03 ist das auch sehr schön gemacht, in dem Fenster wo alle Eigenschaften aufgelistet sind. Sowas in der Art, halt nur mit mehreren Spalten.


Ja, das ist das schon, was du meinst. Da werden aber eigentlich keine Icons angzeigt.
_________________
http://www.sieder25.org/ (Siedler 2 - Remake)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Jonathan_Klein
Living Legend


Alter: 37
Anmeldedatum: 17.02.2003
Beiträge: 3433
Wohnort: Siegerland
Medaillen: Keine

BeitragVerfasst am: 20.06.2006, 15:56    Titel: Antworten mit Zitat

In der MSDN steht das so beschrieben und wenn ich im Ressourceneditor so ein Ding einfüge, sind da auch Icosn drin (in der Vorschau).
Wenn "VS DataGrid" ein eigenständiges Fenster ist (mit eigenen Fensterklasse und so) müsste man das ja auch sehr einfach in C++ einsetzen können. Kann natürlich sein, dass es eine ganz eigene Klasse ist die das alles verwaltet.
Achja, das wäre natürlich auch eine Idee, statt ner Klasse daraus auch einen Fenstertypen zu machen, mit SendMessage und einigen Selbstgemachten Konstanten müsste man ja die geleiche Handhabung wie in normalen Kontrollfenstern erreichen können (obwohl eine Klasse wohl einfach in der Handhabung sein wird).
_________________
https://jonathank.de/games/
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
magynhard
Super JLI'ler



Anmeldedatum: 26.04.2003
Beiträge: 461
Wohnort: Wild durch die Welt ;-)
Medaillen: Keine

BeitragVerfasst am: 20.06.2006, 17:32    Titel: Antworten mit Zitat

Jonathan_Klein hat Folgendes geschrieben:
In der MSDN steht das so beschrieben und wenn ich im Ressourceneditor so ein Ding einfüge, sind da auch Icosn drin (in der Vorschau).
Wenn "VS DataGrid" ein eigenständiges Fenster ist (mit eigenen Fensterklasse und so) müsste man das ja auch sehr einfach in C++ einsetzen können. Kann natürlich sein, dass es eine ganz eigene Klasse ist die das alles verwaltet.
Achja, das wäre natürlich auch eine Idee, statt ner Klasse daraus auch einen Fenstertypen zu machen, mit SendMessage und einigen Selbstgemachten Konstanten müsste man ja die geleiche Handhabung wie in normalen Kontrollfenstern erreichen können (obwohl eine Klasse wohl einfach in der Handhabung sein wird).


Dieses ListView dürfte irgendwo bei der Eigenschaft "Style" auf "Reported" o.ä. umstellbar sein - erst dann wird's zur Tabelle im (etwa) Explorer-Detail-Stil, mit optionalen Icons (d.h. können vor den Inhalt vorangestellt werden).
_________________
Niemand ist hoffnungsloser versklavt als der, der fälschlich glaubt frei zu sein. [J. W. Goethe]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Jonathan_Klein
Living Legend


Alter: 37
Anmeldedatum: 17.02.2003
Beiträge: 3433
Wohnort: Siegerland
Medaillen: Keine

BeitragVerfasst am: 20.06.2006, 20:35    Titel: Antworten mit Zitat

magynhard hat Folgendes geschrieben:
Dieses ListView dürfte irgendwo bei der Eigenschaft "Style" auf "Reported" o.ä. umstellbar sein - erst dann wird's zur Tabelle im (etwa) Explorer-Detail-Stil, mit optionalen Icons (d.h. können vor den Inhalt vorangestellt werden).

Ja, du hast Recht, das scheint brauchbar zu sein. Flying Dragon kannte sich ein wenig damit aus, und konnte mir n prima Link gebne, wo das alles beschreiben ist:
Link
_________________
https://jonathank.de/games/
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Dragon
Super JLI'ler


Alter: 38
Anmeldedatum: 24.05.2004
Beiträge: 340
Wohnort: Sachsen
Medaillen: Keine

BeitragVerfasst am: 20.06.2006, 21:13    Titel: Antworten mit Zitat

Jonathan_Klein hat Folgendes geschrieben:
Flying Dragon kannte sich ein wenig damit aus, und konnte mir n prima Link gebne, wo das alles beschreiben ist:
Link

hier im forum auch bekannt als Dragon Rolling Eyes Wink
_________________
Nur wenn man ein Ziel sieht, kann man es auch treffen.
___________
Mein Leben, Freunde und die Spieleentwicklung
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Jonathan_Klein
Living Legend


Alter: 37
Anmeldedatum: 17.02.2003
Beiträge: 3433
Wohnort: Siegerland
Medaillen: Keine

BeitragVerfasst am: 21.06.2006, 11:28    Titel: Antworten mit Zitat

Dragon hat Folgendes geschrieben:

hier im forum auch bekannt als Dragon Rolling Eyes Wink

Ach jo, was musst du auch im ICQ n anderen Namen haben...
_________________
https://jonathank.de/games/
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Jonathan_Klein
Living Legend


Alter: 37
Anmeldedatum: 17.02.2003
Beiträge: 3433
Wohnort: Siegerland
Medaillen: Keine

BeitragVerfasst am: 21.06.2006, 12:57    Titel: Antworten mit Zitat

Also, ich bin jetzt schon ein wenig weite,r aber ejtzt häng ich fest. Ich weiß net wie ich die Subitems erstellen soll.
CPP:
//List view erstellen:
      hListView=CreateWindowEx(0, WC_LISTVIEW, "ListView",
                        WS_VISIBLE | WS_CHILD | LVS_REPORT | LVS_EDITLABELS | WS_BORDER,
                        160, 0, 200, 100, hWnd, (HMENU)27, gInstance, NULL);
      if(0==hListView)
         MessageBox(hWnd, "Fheler", "fehler", MB_OK);

      //spalten erstellen:
      LVCOLUMN lvc;
      lvc.mask=LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;

      lvc.iSubItem=0;
      lvc.pszText="Splate1";
      lvc.cx=100;
      lvc.fmt=LVCFMT_LEFT;
      ListView_InsertColumn(hListView, 0, &lvc);

      lvc.iSubItem=1;
      lvc.pszText="Spalte2";
      ListView_InsertColumn(hListView, 1, &lvc);

      //objekte einfügen:
      LVITEM lvi;
      lvi.pszText="Item1";
      lvi.mask=LVIF_TEXT;
      lvi.state=0;
      lvi.stateMask=0;
      lvi.iItem=0;
      lvi.iSubItem=0;
      ListView_InsertItem(hListView, &lvi);

      lvi.iItem=2;
      ListView_InsertItem(hListView, &lvi);

      lvi.iSubItem=0;
      lvi.pszText="haha";
      ListView_InsertItem(hListView, &lvi);


Wenn ich bei SubItem 1 angebe, bricht das Programm beim starten ab...

Außerdem scehint Labelediting nicht zu funktioneien, ich kann die anklicken wie ich will, es tut sich nix. Normalerweise sollte das nicht daran liegen, dass ich die Nachrichten nicht behandel, oder?
_________________
https://jonathank.de/games/
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Dragon
Super JLI'ler


Alter: 38
Anmeldedatum: 24.05.2004
Beiträge: 340
Wohnort: Sachsen
Medaillen: Keine

BeitragVerfasst am: 21.06.2006, 13:48    Titel: Antworten mit Zitat

zur 1.
Wenn du ein SubItem (also die 2,3..n-te Spalte) einfügen willst, darfst du nicht ListView_InsertItem nehmen, sondern du musst ListView_SetItem nehemen.

zu 2.
ein Link sagt mehr als 1000 Wörter
http://www.codeguru.com/cpp/controls/listview/editingitemsandsubitem/article.php/c4175/
_________________
Nur wenn man ein Ziel sieht, kann man es auch treffen.
___________
Mein Leben, Freunde und die Spieleentwicklung
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Jonathan_Klein
Living Legend


Alter: 37
Anmeldedatum: 17.02.2003
Beiträge: 3433
Wohnort: Siegerland
Medaillen: Keine

BeitragVerfasst am: 21.06.2006, 16:09    Titel: Antworten mit Zitat

ja, wow, das sit ja mal super komplizeit... Man muss ja selber ein Editfeld erstellen und so...
Ne, da schreib ich mir doch lieber fix ne Klasse, die x*y Editfelder anordnet mit ner Abfarge funktion für X, Y. Die hab ich an einem Abend fertig, das macht genau das was ich möchte und ich hab net so n Stress alles mühsam rauszusuchen um dann zu merken, dass das doch nicht genau das ist, was ich möchte...
_________________
https://jonathank.de/games/
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Jonathan_Klein
Living Legend


Alter: 37
Anmeldedatum: 17.02.2003
Beiträge: 3433
Wohnort: Siegerland
Medaillen: Keine

BeitragVerfasst am: 21.06.2006, 20:16    Titel: Antworten mit Zitat

Also ich hab mir jetzt meine eigene Tabellenklasse geschrieben, was mir vielleicht noch fehtl wäre eine Möglcihkeit einzustellen, welche Schriftart die Editfenster ahben sollen. Weil die sind viel größer als die restliche Schrift, und die Editfenster die man in einer DialogBox erstelle habne auch eine kleinere Schriftart.
_________________
https://jonathank.de/games/
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum