Brauche Hilfe bei Button und INI Datei
-
Wenn du mit einem ListView arbeitest, dann gibt es hier passenden Beispielcode...
Du solltest auf jeden Fall über mit der MSDN-Library umzugehen und dich ein wenig zurecht zu finden, denn dort findest du eigentlich fast alles, was du brauchst (naja vielleicht nicht alles, aber auf jeden Fall eine ganze Menge)

-
Was wäre denn der Einfachere Weg? Hab mir die MSDN schon min. 2 mal angeschaut und werde einfach nicht daraus schlau! Derjenige der mir den Auftrag gegeben hat, hat gemeint ich könnte es mal mit einem Edit Fenster ausprobieren. Noch eine Bemerkung. Ich bin noch ziemlicher Anfänger in der Windowsprogrammierung. MFG. BlackFalcon
-
Um dir zu sagen, welches Control wohl am besten geeignet wäre, müsste man erstmal wissen, was genau du überhaupt vorhast bzw. was das Control leisten soll...
-
Oh sorry! Also das Controll soll folgendes leisten: Er soll die Daten die ich Eingeben habe mir in diesem Feld wieder ausgeben. In etwar so
------------
| [EDC] |
| 1=xyz |
| 2=abc |
------------Verstehst du jetzt was ich meine!
MFG BlackFalcon
-
OK, wenn du einfach nur deine Datei dort ausgeben willst, nimmst du am besten ein EDIT-Control und setzt ES_MULTILINE
Du kannst entweder deinen ganzen Text auf einmal einfügen (WM_SETTEXT bzw. SetWindowText), oder stückweise (wie du das anstellst, findest du hier).
-
Habe mir für die 1. Methode entschieden alles auf einmal Auszugeben. Jetzt das Edit Feld so Definiert das im Edit Feld jetzt die Variable ES_MULTILINE Drinnensteht. und mit dem ID_READ eine neue case gestartet habe und mit SetWindowText() in das Edit Feld eintrage. So jetzt kommt aber immer nur 1. Hyroglyp "ζ" so ein ähnliches Zeichen und das glaub ich so viel wie in dem Array szString platz haben. Was ist noch zu tun ich schicke euch (dir) vielleicht mal den Source Code mit.
hEdit1 = CreateWindow ("edit", NULL, WS_BORDER | WS_CHILD | WS_VISIBLE | ES_AUTOHSCROLL | ES_MULTILINE, 180, cxClient / cyClient + 30, cxClient, cyClient * 10, hwnd, (HMENU) ID_LIST, ((LPCREATESTRUCT) lParam)->hInstance, NULL); TCHAR szString[1024]; case ID_READ: ShowWindow (hEdit1, TRUE); SetWindowText (hEdit1, szString); break;Mfg. BlackFalcon
-
Da fehlt aber zwischendrin noch ein Befehl, der deine Daten liest und in szString einträgt. (das Array ist noch unberührt, also steht dort irgendwelcher Datenmüll drin)
-
szString wird eingelesen und zwar mit dem Befehl WritePrivateProfileString() und mit GetPrivateProfileString() in die Datei eingetragen. Jetzt steht immer wenn ich auf Lesen Drücke diese kommische Zeichen und dahinter noch ein Text das mit einer anderen Variable vereinbart hab. Mfg. BlackFalcon
-
Ich dachte, du willst einfach die ganze ini-Datei in deinem Edit ausgeben? Also müsstest du sie ganz normal mit den Datei-Funktionen (z.B. ReadFile) einlesen und nicht mit GetPrivateProfileString (das brauchst du nur, wenn du sie parsen lassen willst)

-
Ich bin halt noch Anfänger
. Ich kenn mich halt nicht noch so gut aus wie ihr. Nochmal von ganz von forne. Ich hab jetzt ein Edit Feld in das Edit Feld soll dann drinnen stehen die Daten die ich bereits eingeben habe. Mit ReadFile hab ich keinerlei erfahrung gemacht.
Schon langsam ärgert mich das. Ihr wollt mir nur Helfen und ich versteh nichts vom Programmieren. Ich glaub ich muss mich nochmal zuhause dahinter klemmen wie das gehen könnte. Ich glaub ich lass es fürs erste bleiben und schau das ich es zuhause oder in der Firma irgendwie Schafe. Danke noch mal für eure Unterstützung
-
Es ist halt etwas schwierig dir konkret zu helfen, wenn nicht ganz klar ist, was du genau haben willst. Du sagtest:
BlackFalcon schrieb:
Habe mir für die 1. Methode entschieden alles auf einmal Auszugeben.
und dann jetzt wieder:
BlackFalcon schrieb:
szString wird eingelesen und zwar mit dem Befehl WritePrivateProfileString() und mit GetPrivateProfileString() in die Datei eingetragen.
Aber das auslesen mit GetPrivateProfileString machst du ja schrittweise in einer for Schleife

Willst du jetzt einfach alles, was in der ini Datei steht in ein Edit schreiben, oder irgendwas anderes?!
-
Ja so inetwar nur soll halt der Abschnitt [EDC] im Edit Fenster stehen. z.B.
in der ini Datei steht volgendes:
[EDC]
1=xyz
2=abcim Edit Feld soll dann genau das selbe stehen
[EDC]
1=xyz
2=abcVerstehst du mich jetzt Besser? Mfg. Thomas
-
Hab dir mal schnell was zusammengebastelt:
hWndEdit = CreateWindowEx(...); int i = 1; char buffer[1024]; char szStrings[1024]; Edit_AddText(hWndEdit,"[EDC]\r\n"); do { wsprintf (buffer, "%d", i); GetPrivateProfileString ("EDC", buffer, "NONE", szStrings, sizeof (szStrings), "c:\\utm.ini"); if(lstrcmp(szStrings,"NONE") == 0) break; wsprintf(buffer, "%d=%s\r\n", i, szStrings); Edit_AddText(hWndEdit,buffer); i++; } while(true);Edit_AddText ist die Funktion, auf die ich weiter oben schon verlinkt habe...
-
Morgen! Das mit dem Edit_AddText() Befehl klappt schon recht gut jetzt hab ich nur noch ein Problem. Er schreibt mir die einträge doppelt und dreifach in das Edit Fenster! z.B.:
Beim ersten Drücken der Schaltfläche:
[EDC]
1=abc
2=defBeim zweiten mal Drücken der Schaltfläche:
[EDC]
1=abc
2=def
1=abc
2=def
3=ghiMöchte das so haben
Erster Buttonklick
[EDC]
1=abc
2=defZweiter Butttonklick in Edit Feld schreiben
[EDC]
1=abc
2=def
3=ghiSorry das ich vorhin mich so unklar ausgedrückt habe. Würde das mit dem Befehl Edit_InsertLine() nicht auch gehen? Aber wie ich muss ich dann den zweiten Parameter setzen? Wenn ich diesen Befehl verwende?! Oder würde es mit dem Edit_AddText() Befehl auch gehen? Mfg BlackFalcon
P.S.: Ich hab sogar versucht die Befehle Außerhalb der Schleife zu setzen und noch so ähnliche sachen.
-
Mit Edit_InsertLine könntest du das natürlich auch machen, aber da du ja immer nur am Ende Daten anhängen willst, so wäre das etwas oversized. Dein Problem ist scheinbar, dass du die while-Schleife bei jedem Button-Klick erneut ausführst, was nicht sinnvol ist. Wenn du einmal die Zahl ermittelt hast, di in der ini-Datei als nächstes kommt, dann brauchst du ja nur noch diesen Zähler mit den Button-Klicks entsprechend hochzuzählen und immer nur die neu eingetragenen Daten mit Edit_AddText anzuhängen.
-
Ich glaub jetzt habe ichs. Er schreibt mir zwar die Daten die ich gerade eingegeben habe in das Edit Fenster. Mal schauen ob es dem Kollegen so recht ist. Ansonst melde ich mich wieder! Danke hast mir sehr weitergeholfen. Ich glaube ich bin für die Windows Programmierung nicht noch bereit. Hatte gerade mal einen Crash Kurs mit einem Buch hinter mir. Aber ich glaube wenn ich mich dahinter setze und noch mal ganz von Anfang an anfange so mit C++, und mich hocharbeite zur Windows Programmierung dann könnte ich mal ein guter Programmierer werden. Ich hatte fast 2 Jahre nicht mehr Programmiert. Könntest du mir ein Gutes Buch empfählen? Mfg BlackFalcon
-
Zur Windows-Programmierung ist das hier ein recht ordentlicher Einstieg:
Windows-Programmierung | ISBN: 3860631888Aber schau dich doch selbst mal im Bücher-Bereich um...
-
Das Buch hab ich schon und ich muss sagen vorher habe ich nicht mal so ganz Begriffen das Windows nur aus einer Nachrichten Schleife besteht und zum für Programmierer die Windows Anwendungen Schreiben möchten ist das genau perfekt. Nur muss ich noch an meinen C++ Kenntnissen herum feilen. Da du mir jetzt aber einen Link zu verfügung gestellt hast ist es jetzt leichten in eine Buchhandlung zu gehen und mir eines zu Kaufen. Danke für den Tip! Mfg. BlackFalcon