|
JLI Spieleprogrammierung
|
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
|
Verfasst am: 20.06.2006, 14:00 Titel: Win API Tabellen |
|
|
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 |
|
|
OLiver Super JLI'ler
Alter: 33 Anmeldedatum: 29.06.2003 Beiträge: 306 Wohnort: Jena Medaillen: Keine
|
Verfasst am: 20.06.2006, 14:43 Titel: |
|
|
ListView Control oder so hieß das Ding. (Ist das Standard-Tabellencontrol unter Windows) _________________ http://www.sieder25.org/ (Siedler 2 - Remake) |
|
Nach oben |
|
|
Jonathan_Klein Living Legend
Alter: 37 Anmeldedatum: 17.02.2003 Beiträge: 3433 Wohnort: Siegerland Medaillen: Keine
|
Verfasst am: 20.06.2006, 14:59 Titel: |
|
|
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 |
|
|
Fallen JLI MVP
Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 20.06.2006, 15:13 Titel: |
|
|
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 |
|
|
OLiver Super JLI'ler
Alter: 33 Anmeldedatum: 29.06.2003 Beiträge: 306 Wohnort: Jena Medaillen: Keine
|
Verfasst am: 20.06.2006, 15:45 Titel: |
|
|
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 |
|
|
Jonathan_Klein Living Legend
Alter: 37 Anmeldedatum: 17.02.2003 Beiträge: 3433 Wohnort: Siegerland Medaillen: Keine
|
Verfasst am: 20.06.2006, 15:56 Titel: |
|
|
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 |
|
|
magynhard Super JLI'ler
Anmeldedatum: 26.04.2003 Beiträge: 461 Wohnort: Wild durch die Welt ;-) Medaillen: Keine
|
Verfasst am: 20.06.2006, 17:32 Titel: |
|
|
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 |
|
|
Jonathan_Klein Living Legend
Alter: 37 Anmeldedatum: 17.02.2003 Beiträge: 3433 Wohnort: Siegerland Medaillen: Keine
|
Verfasst am: 20.06.2006, 20:35 Titel: |
|
|
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 |
|
|
Dragon Super JLI'ler
Alter: 38 Anmeldedatum: 24.05.2004 Beiträge: 340 Wohnort: Sachsen Medaillen: Keine
|
Verfasst am: 20.06.2006, 21:13 Titel: |
|
|
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 _________________ Nur wenn man ein Ziel sieht, kann man es auch treffen.
___________
Mein Leben, Freunde und die Spieleentwicklung |
|
Nach oben |
|
|
Jonathan_Klein Living Legend
Alter: 37 Anmeldedatum: 17.02.2003 Beiträge: 3433 Wohnort: Siegerland Medaillen: Keine
|
Verfasst am: 21.06.2006, 11:28 Titel: |
|
|
Dragon hat Folgendes geschrieben: |
hier im forum auch bekannt als Dragon |
Ach jo, was musst du auch im ICQ n anderen Namen haben... _________________ https://jonathank.de/games/ |
|
Nach oben |
|
|
Jonathan_Klein Living Legend
Alter: 37 Anmeldedatum: 17.02.2003 Beiträge: 3433 Wohnort: Siegerland Medaillen: Keine
|
Verfasst am: 21.06.2006, 12:57 Titel: |
|
|
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 |
|
|
Dragon Super JLI'ler
Alter: 38 Anmeldedatum: 24.05.2004 Beiträge: 340 Wohnort: Sachsen Medaillen: Keine
|
|
Nach oben |
|
|
Jonathan_Klein Living Legend
Alter: 37 Anmeldedatum: 17.02.2003 Beiträge: 3433 Wohnort: Siegerland Medaillen: Keine
|
Verfasst am: 21.06.2006, 16:09 Titel: |
|
|
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 |
|
|
Jonathan_Klein Living Legend
Alter: 37 Anmeldedatum: 17.02.2003 Beiträge: 3433 Wohnort: Siegerland Medaillen: Keine
|
Verfasst am: 21.06.2006, 20:16 Titel: |
|
|
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 |
|
|
|
|
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
|