<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[ListBox befüllen und Löschen]]></title><description><![CDATA[<p>Hallo,</p>
<p>habe hier folgendes PRogramm, es erzeugt mir 3 Buttons (Ok, Cancel, Löschen)</p>
<p>eine ListBox<br />
und zwei Editfelder.</p>
<p>wenn ich jetzt in die 2 Editfelder etwas eintrage möchte ich das die beiden eingetragenen Texte/Zahlen per Klick auf den Button &quot;Ok&quot; in die ListBox eingefügt werden.</p>
<p>Habe das schon per Stringfunktionen versucht in dem ich die Beiden Strings zusammenfüge und dann in die Listbox schreibe, funktioniert aber nicht.<br />
Bisher wird ja nur das Element aus dem ersten Editfeld in die Box geschrieben.</p>
<p>2tens, möchte ich per Druck auf &quot;Löschen&quot; dass die Listbox geleert wird. Dafür hab ich bisher aber noch gar keinen Ansatz.</p>
<p>Hier mal der Code</p>
<pre><code class="language-cpp">/*-----------------------------------------------------------------------
   MenuDemo.C  hat ein kleines Menü
   und demonstriert verschiedene Controls / Ressourcen
  -----------------------------------------------------------------------*/

#include &lt;windows.h&gt;
#include &quot;resource.h&quot;		// wird vom Menue-Editor erzeugt
#include &lt;string.h&gt;

LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ;
//Deklaration der Windows-Nachrichten-Prozedur

int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
                    PSTR szCmdLine, int iCmdShow)
{
     static TCHAR szAppName[] = TEXT (&quot;MenuDemo&quot;) ;				// Name der Anwendung
     HWND         hwnd ;										// Window handle
     MSG          msg ;											// MSG Nachrichten Struktur
     WNDCLASS     wndclass ;									// WNDCLASS Struktur

	 //Anwendungsbereich (client area)
     wndclass.style         = CS_HREDRAW | CS_VREDRAW ;			// Neuzeichnen des Fensters
     wndclass.lpfnWndProc   = WndProc ;							// Nachrichtenverarbeitung CALLBACK WndProc
     wndclass.cbClsExtra    = 0 ;
     wndclass.cbWndExtra    = 0 ;
     wndclass.hInstance     = hInstance ;
     wndclass.hIcon         = LoadIcon (NULL, IDI_APPLICATION) ;
     wndclass.hCursor       = LoadCursor (NULL, IDC_ARROW) ;	// Cursor
     wndclass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH) ;   // Hintergrund
     wndclass.lpszMenuName  = szAppName ;						// Menue Name der Anwendung
     wndclass.lpszClassName = szAppName ;

     if (!RegisterClass (&amp;wndclass))
     {    // UNICODE-Compilierung ist die einzige realistische Fehlermöglichkeit 
          MessageBox (NULL, TEXT (&quot;Programm arbeitet mit Unicode und setzt Windows NT voraus!&quot;), 
                      szAppName, MB_ICONERROR) ;
          return 0 ;
     }

      hwnd = CreateWindow (szAppName,                 // Name der Fensterklasse
                  TEXT (&quot;Windows-Programm&quot;),		  // Fenstertitel
                  WS_OVERLAPPEDWINDOW,                // Fensterstil - Art des Fensters
                  CW_USEDEFAULT,                      // X-Position des Fensters
                  CW_USEDEFAULT,                      // Y-Position des Fensters
                  CW_USEDEFAULT,                      // Fensterbreite
                  CW_USEDEFAULT,                      // Fensterhöhe
                  NULL,                               // übergeordnetes Fenster
                  NULL,                               // Menü
                  hInstance,                          // Programm-Kopiezähler (Programm-ID)
                  NULL) ;                             // zusätzliche Parameter

     ShowWindow (hwnd, iCmdShow) ;
     UpdateWindow (hwnd) ;

     while (GetMessage (&amp;msg, NULL, 0, 0))			// Nachrichten-Schleife  
     {
          TranslateMessage (&amp;msg) ;
          DispatchMessage (&amp;msg) ;
     }
     return msg.wParam ;
}

// Windows-Nachrichten-Prozedur  
LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
     static TCHAR szAppName[] = TEXT (&quot;MenuDemo&quot;) ;				// Name der Anwendung
	 HDC         hdc ;
     PAINTSTRUCT ps ;
     RECT        rect ;
	 int         iLength;
	 int		 iLength2;
	 int		 x;
	 void        * pszBuffer;	// Zeiger auf Begrüßungstext
	 void		 * pszBuffer2;

	 static HWND        hwndButton1, hwndButton2, hwndButton3, hwndEdit1, hwndEdit2, hwndText1, hwndText2, hwndList;

     switch (message)
     {

	 case WM_CREATE:  

																		//Auf Reihenfolge achten!!!
		  hwndButton1 = CreateWindow ( TEXT(&quot;button&quot;), TEXT(&quot;OK&quot;),
                                   WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,
                                   490, 400, 100, 40,
                                   hwnd, (HMENU)1,((LPCREATESTRUCT) lParam)-&gt;hInstance, NULL); 

		  hwndButton2 = CreateWindow ( TEXT(&quot;button&quot;), TEXT(&quot;Cancel&quot;),
                                   WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,
                                   600, 400, 100, 40,
                                   hwnd, (HMENU)2,((LPCREATESTRUCT) lParam)-&gt;hInstance, NULL);

		  hwndButton3 = CreateWindow ( TEXT(&quot;button&quot;), TEXT(&quot;Loeschen&quot;),
                                   WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,
                                   710, 400, 100, 40,
                                   hwnd, (HMENU)3,((LPCREATESTRUCT) lParam)-&gt;hInstance, NULL);

		  hwndEdit1    = CreateWindow ( TEXT(&quot;edit&quot;), TEXT(&quot;&quot;),
                                   WS_CHILD | WS_VISIBLE | WS_BORDER,
                                   300, 150, 180, 20, hwnd, (HMENU)4,
                                   (HINSTANCE) GetWindowLong (hwnd, GWL_HINSTANCE), NULL);

		  hwndEdit2    = CreateWindow ( TEXT(&quot;edit&quot;), TEXT(&quot;&quot;),
                                   WS_CHILD | WS_VISIBLE | WS_BORDER,
                                   300, 180, 180, 20, hwnd, (HMENU)5,
                                   (HINSTANCE) GetWindowLong (hwnd, GWL_HINSTANCE), NULL);

		  hwndText1   = CreateWindow ( TEXT(&quot;static&quot;), TEXT(&quot;Hallo...&quot;),
                                   WS_CHILD ,
                                   240, 250, 200, 20, hwnd, (HMENU)6,
                                   (HINSTANCE) GetWindowLong (hwnd, GWL_HINSTANCE), NULL);
		                           // ohne WS_VISIBLE, also nicht sichtbar

		  hwndText2   = CreateWindow ( TEXT(&quot;static&quot;), TEXT(&quot;&quot;),
                                   WS_CHILD ,
                                   300, 250, 200, 20, hwnd, (HMENU)7,
                                   (HINSTANCE) GetWindowLong (hwnd, GWL_HINSTANCE), NULL);
		                           // ohne WS_VISIBLE, also nicht sichtbar

		  hwndList    = CreateWindow ( TEXT(&quot;listbox&quot;), TEXT(&quot;&quot;),
                                   WS_CHILD | WS_VISIBLE | LBS_STANDARD | LBS_MULTIPLESEL ,
                                   520, 150, 180, 200, hwnd, (HMENU)8,
                                   (HINSTANCE) GetWindowLong (hwnd, GWL_HINSTANCE), NULL);

          return 0 ;

	 case WM_COMMAND:

		  switch(LOWORD(wParam))	// Behandlung des Menues
		  {
		  case ID_DATEI_BEENDEN:
			   SendMessage (hwnd, WM_CLOSE, 0, 0) ;
			   return 0;
		  }

		  switch(LOWORD(wParam))	// Behandlung der Buttons
		  {
		  case 1:
			   // Zeilenlänge der Eingabe ermitteln
			  iLength = SendMessage(hwndEdit1, EM_LINELENGTH, 0, 0);
			  iLength2 = SendMessage(hwndEdit2, EM_LINELENGTH, 0, 0);

			  x = iLength + iLength2;

			  // Speicher mit entsprechender Länge
			  pszBuffer = malloc(x);
			  pszBuffer2 = malloc(iLength2);
			  // Text mit EM_GETLINE nach pszBuffer auslesen
			  // (LPARAM) (LPCSTR) pszBuffer; = address of buffer for line

			  SendMessage(hwndEdit1, EM_GETLINE, 0, (LPARAM) (LPCSTR) pszBuffer);
			  SendMessage(hwndEdit2, EM_GETLINE, 0, (LPARAM) (LPCSTR) pszBuffer2);
			  // Begrüßungstext ausgeben und anzeigen
			  SetWindowText(hwndText2, (LPCSTR) pszBuffer);  // auf const char string zu casten
			  ShowWindow(hwndText1, SW_SHOWNORMAL);          // jetzt Text1 anzeigen
			  ShowWindow(hwndText2, SW_SHOWNORMAL);          // jetzt Text2 anzeigen

			  // Anzeige in Listbox
			  SendMessage(hwndList, LB_ADDSTRING, 0, (LONG) (LPCSTR) pszBuffer);

			  break;

		  case 2:
			  MessageBox(hwnd,TEXT(&quot;Der Button Cancel wurde gedrückt&quot;), szAppName, MB_ICONERROR);
			  break;

		  case 3:

			  MessageBox(hwnd,TEXT(&quot;Der Button Loschen wurde gedrueckt&quot;), TEXT(&quot;Message&quot;), MB_OK);
			  break;

		  } 
		  return 0; 

     case WM_PAINT:
          hdc = BeginPaint (hwnd, &amp;ps) ;

          GetClientRect (hwnd, &amp;rect) ;

		  TextOut (hdc, 240, 152, TEXT(&quot;Name&quot;), 4); // device context, x, y, string, string-Länge 

		  TextOut (hdc, 240, 182, TEXT(&quot;Matr. - Nr.&quot;), 4); // device context, x, y, string, string-Länge 

          EndPaint (hwnd, &amp;ps) ;
          return 0 ;

     case WM_DESTROY:
          PostQuitMessage (0) ;
          return 0 ;
     }
     return DefWindowProc (hwnd, message, wParam, lParam) ;
}
</code></pre>
<p>hier noch die resource.h</p>
<pre><code class="language-cpp">//{{NO_DEPENDENCIES}}
// Microsoft Developer Studio generated include file.
// Used by MenuDemo.rc
//
#define ID_HILFE_ABOUT                  40003
#define ID_DATEI_NEU                    40004
#define ID_DATEI_BEENDEN                40005

// Next default values for new objects
// 
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE        104
#define _APS_NEXT_COMMAND_VALUE         40006
#define _APS_NEXT_CONTROL_VALUE         1000
#define _APS_NEXT_SYMED_VALUE           101
#endif
#endif
</code></pre>
<p>Hat mir jemand vielleicht en kleinen Tip der mir auf die Sprünge hilft?</p>
<p>Gruß maze</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/168004/listbox-befüllen-und-löschen</link><generator>RSS for Node</generator><lastBuildDate>Thu, 16 Jul 2026 15:20:16 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/168004.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 17 Dec 2006 14:44:42 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to ListBox befüllen und Löschen on Sun, 17 Dec 2006 14:46:01 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>habe hier folgendes PRogramm, es erzeugt mir 3 Buttons (Ok, Cancel, Löschen)</p>
<p>eine ListBox<br />
und zwei Editfelder.</p>
<p>wenn ich jetzt in die 2 Editfelder etwas eintrage möchte ich das die beiden eingetragenen Texte/Zahlen per Klick auf den Button &quot;Ok&quot; in die ListBox eingefügt werden.</p>
<p>Habe das schon per Stringfunktionen versucht in dem ich die Beiden Strings zusammenfüge und dann in die Listbox schreibe, funktioniert aber nicht.<br />
Bisher wird ja nur das Element aus dem ersten Editfeld in die Box geschrieben.</p>
<p>2tens, möchte ich per Druck auf &quot;Löschen&quot; dass die Listbox geleert wird. Dafür hab ich bisher aber noch gar keinen Ansatz.</p>
<p>Hier mal der Code</p>
<pre><code class="language-cpp">/*-----------------------------------------------------------------------
   MenuDemo.C  hat ein kleines Menü
   und demonstriert verschiedene Controls / Ressourcen
  -----------------------------------------------------------------------*/

#include &lt;windows.h&gt;
#include &quot;resource.h&quot;		// wird vom Menue-Editor erzeugt
#include &lt;string.h&gt;

LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ;
//Deklaration der Windows-Nachrichten-Prozedur

int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
                    PSTR szCmdLine, int iCmdShow)
{
     static TCHAR szAppName[] = TEXT (&quot;MenuDemo&quot;) ;				// Name der Anwendung
     HWND         hwnd ;										// Window handle
     MSG          msg ;											// MSG Nachrichten Struktur
     WNDCLASS     wndclass ;									// WNDCLASS Struktur

	 //Anwendungsbereich (client area)
     wndclass.style         = CS_HREDRAW | CS_VREDRAW ;			// Neuzeichnen des Fensters
     wndclass.lpfnWndProc   = WndProc ;							// Nachrichtenverarbeitung CALLBACK WndProc
     wndclass.cbClsExtra    = 0 ;
     wndclass.cbWndExtra    = 0 ;
     wndclass.hInstance     = hInstance ;
     wndclass.hIcon         = LoadIcon (NULL, IDI_APPLICATION) ;
     wndclass.hCursor       = LoadCursor (NULL, IDC_ARROW) ;	// Cursor
     wndclass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH) ;   // Hintergrund
     wndclass.lpszMenuName  = szAppName ;						// Menue Name der Anwendung
     wndclass.lpszClassName = szAppName ;

     if (!RegisterClass (&amp;wndclass))
     {    // UNICODE-Compilierung ist die einzige realistische Fehlermöglichkeit 
          MessageBox (NULL, TEXT (&quot;Programm arbeitet mit Unicode und setzt Windows NT voraus!&quot;), 
                      szAppName, MB_ICONERROR) ;
          return 0 ;
     }

      hwnd = CreateWindow (szAppName,                 // Name der Fensterklasse
                  TEXT (&quot;Windows-Programm&quot;),		  // Fenstertitel
                  WS_OVERLAPPEDWINDOW,                // Fensterstil - Art des Fensters
                  CW_USEDEFAULT,                      // X-Position des Fensters
                  CW_USEDEFAULT,                      // Y-Position des Fensters
                  CW_USEDEFAULT,                      // Fensterbreite
                  CW_USEDEFAULT,                      // Fensterhöhe
                  NULL,                               // übergeordnetes Fenster
                  NULL,                               // Menü
                  hInstance,                          // Programm-Kopiezähler (Programm-ID)
                  NULL) ;                             // zusätzliche Parameter

     ShowWindow (hwnd, iCmdShow) ;
     UpdateWindow (hwnd) ;

     while (GetMessage (&amp;msg, NULL, 0, 0))			// Nachrichten-Schleife  
     {
          TranslateMessage (&amp;msg) ;
          DispatchMessage (&amp;msg) ;
     }
     return msg.wParam ;
}

// Windows-Nachrichten-Prozedur  
LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
     static TCHAR szAppName[] = TEXT (&quot;MenuDemo&quot;) ;				// Name der Anwendung
	 HDC         hdc ;
     PAINTSTRUCT ps ;
     RECT        rect ;
	 int         iLength;
	 int		 iLength2;
	 int		 x;
	 void        * pszBuffer;	// Zeiger auf Begrüßungstext
	 void		 * pszBuffer2;

	 static HWND        hwndButton1, hwndButton2, hwndButton3, hwndEdit1, hwndEdit2, hwndText1, hwndText2, hwndList;

     switch (message)
     {

	 case WM_CREATE:  

																		//Auf Reihenfolge achten!!!
		  hwndButton1 = CreateWindow ( TEXT(&quot;button&quot;), TEXT(&quot;OK&quot;),
                                   WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,
                                   490, 400, 100, 40,
                                   hwnd, (HMENU)1,((LPCREATESTRUCT) lParam)-&gt;hInstance, NULL); 

		  hwndButton2 = CreateWindow ( TEXT(&quot;button&quot;), TEXT(&quot;Cancel&quot;),
                                   WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,
                                   600, 400, 100, 40,
                                   hwnd, (HMENU)2,((LPCREATESTRUCT) lParam)-&gt;hInstance, NULL);

		  hwndButton3 = CreateWindow ( TEXT(&quot;button&quot;), TEXT(&quot;Loeschen&quot;),
                                   WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,
                                   710, 400, 100, 40,
                                   hwnd, (HMENU)3,((LPCREATESTRUCT) lParam)-&gt;hInstance, NULL);

		  hwndEdit1    = CreateWindow ( TEXT(&quot;edit&quot;), TEXT(&quot;&quot;),
                                   WS_CHILD | WS_VISIBLE | WS_BORDER,
                                   300, 150, 180, 20, hwnd, (HMENU)4,
                                   (HINSTANCE) GetWindowLong (hwnd, GWL_HINSTANCE), NULL);

		  hwndEdit2    = CreateWindow ( TEXT(&quot;edit&quot;), TEXT(&quot;&quot;),
                                   WS_CHILD | WS_VISIBLE | WS_BORDER,
                                   300, 180, 180, 20, hwnd, (HMENU)5,
                                   (HINSTANCE) GetWindowLong (hwnd, GWL_HINSTANCE), NULL);

		  hwndText1   = CreateWindow ( TEXT(&quot;static&quot;), TEXT(&quot;Hallo...&quot;),
                                   WS_CHILD ,
                                   240, 250, 200, 20, hwnd, (HMENU)6,
                                   (HINSTANCE) GetWindowLong (hwnd, GWL_HINSTANCE), NULL);
		                           // ohne WS_VISIBLE, also nicht sichtbar

		  hwndText2   = CreateWindow ( TEXT(&quot;static&quot;), TEXT(&quot;&quot;),
                                   WS_CHILD ,
                                   300, 250, 200, 20, hwnd, (HMENU)7,
                                   (HINSTANCE) GetWindowLong (hwnd, GWL_HINSTANCE), NULL);
		                           // ohne WS_VISIBLE, also nicht sichtbar

		  hwndList    = CreateWindow ( TEXT(&quot;listbox&quot;), TEXT(&quot;&quot;),
                                   WS_CHILD | WS_VISIBLE | LBS_STANDARD | LBS_MULTIPLESEL ,
                                   520, 150, 180, 200, hwnd, (HMENU)8,
                                   (HINSTANCE) GetWindowLong (hwnd, GWL_HINSTANCE), NULL);

          return 0 ;

	 case WM_COMMAND:

		  switch(LOWORD(wParam))	// Behandlung des Menues
		  {
		  case ID_DATEI_BEENDEN:
			   SendMessage (hwnd, WM_CLOSE, 0, 0) ;
			   return 0;
		  }

		  switch(LOWORD(wParam))	// Behandlung der Buttons
		  {
		  case 1:
			   // Zeilenlänge der Eingabe ermitteln
			  iLength = SendMessage(hwndEdit1, EM_LINELENGTH, 0, 0);
			  iLength2 = SendMessage(hwndEdit2, EM_LINELENGTH, 0, 0);

			  x = iLength + iLength2;

			  // Speicher mit entsprechender Länge
			  pszBuffer = malloc(x);
			  pszBuffer2 = malloc(iLength2);
			  // Text mit EM_GETLINE nach pszBuffer auslesen
			  // (LPARAM) (LPCSTR) pszBuffer; = address of buffer for line

			  SendMessage(hwndEdit1, EM_GETLINE, 0, (LPARAM) (LPCSTR) pszBuffer);
			  SendMessage(hwndEdit2, EM_GETLINE, 0, (LPARAM) (LPCSTR) pszBuffer2);
			  // Begrüßungstext ausgeben und anzeigen
			  SetWindowText(hwndText2, (LPCSTR) pszBuffer);  // auf const char string zu casten
			  ShowWindow(hwndText1, SW_SHOWNORMAL);          // jetzt Text1 anzeigen
			  ShowWindow(hwndText2, SW_SHOWNORMAL);          // jetzt Text2 anzeigen

			  // Anzeige in Listbox
			  SendMessage(hwndList, LB_ADDSTRING, 0, (LONG) (LPCSTR) pszBuffer);

			  break;

		  case 2:
			  MessageBox(hwnd,TEXT(&quot;Der Button Cancel wurde gedrückt&quot;), szAppName, MB_ICONERROR);
			  break;

		  case 3:

			  MessageBox(hwnd,TEXT(&quot;Der Button Loschen wurde gedrueckt&quot;), TEXT(&quot;Message&quot;), MB_OK);
			  break;

		  } 
		  return 0; 

     case WM_PAINT:
          hdc = BeginPaint (hwnd, &amp;ps) ;

          GetClientRect (hwnd, &amp;rect) ;

		  TextOut (hdc, 240, 152, TEXT(&quot;Name&quot;), 4); // device context, x, y, string, string-Länge 

		  TextOut (hdc, 240, 182, TEXT(&quot;Matr. - Nr.&quot;), 4); // device context, x, y, string, string-Länge 

          EndPaint (hwnd, &amp;ps) ;
          return 0 ;

     case WM_DESTROY:
          PostQuitMessage (0) ;
          return 0 ;
     }
     return DefWindowProc (hwnd, message, wParam, lParam) ;
}
</code></pre>
<p>hier noch die resource.h</p>
<pre><code class="language-cpp">//{{NO_DEPENDENCIES}}
// Microsoft Developer Studio generated include file.
// Used by MenuDemo.rc
//
#define ID_HILFE_ABOUT                  40003
#define ID_DATEI_NEU                    40004
#define ID_DATEI_BEENDEN                40005

// Next default values for new objects
// 
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE        104
#define _APS_NEXT_COMMAND_VALUE         40006
#define _APS_NEXT_CONTROL_VALUE         1000
#define _APS_NEXT_SYMED_VALUE           101
#endif
#endif
</code></pre>
<p>Hat mir jemand vielleicht en kleinen Tip der mir auf die Sprünge hilft?</p>
<p>Gruß maze</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1193475</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1193475</guid><dc:creator><![CDATA[mazeli]]></dc:creator><pubDate>Sun, 17 Dec 2006 14:46:01 GMT</pubDate></item><item><title><![CDATA[Reply to ListBox befüllen und Löschen on Sun, 17 Dec 2006 15:27:45 GMT]]></title><description><![CDATA[<p>Warum verwendest Du als &quot;pxzBuffer(2) ein &quot;void*&quot;????<br />
Das deuetet sehr nach Fehler hin! Auch ist casten eigentlich immer schlecht (vor allem, wenn es nicht nötig ist!!!).</p>
<p>Also</p>
<pre><code class="language-cpp">TCHAR pszBuffer
</code></pre>
<p>verwenden und bei EM_GETLINE *nicht* nach LPTSTR casten!!!!!!<br />
Auch anstelle &quot;malloc&quot; bitte &quot;new&quot; verwenden!!!</p>
<pre><code class="language-cpp">pszBuffer = new TCHAR[len+1];
</code></pre>
<p>Dein Problem ist:<br />
Du hast ein Unicode-Programm, verwendest aber ANSI-Strings... das kann nicht gut gehen... deshlab konsequent TCHAR und konsorten verwenden!!!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1193505</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1193505</guid><dc:creator><![CDATA[Jochen Kalmbach]]></dc:creator><pubDate>Sun, 17 Dec 2006 15:27:45 GMT</pubDate></item><item><title><![CDATA[Reply to ListBox befüllen und Löschen on Sun, 17 Dec 2006 17:30:51 GMT]]></title><description><![CDATA[<p>Naja das Programm war so vorgegeben, wir sollen nur ein paar änderungen machen.</p>
<p>New geht nicht da wir c verwenden müssen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1193584</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1193584</guid><dc:creator><![CDATA[mazeli]]></dc:creator><pubDate>Sun, 17 Dec 2006 17:30:51 GMT</pubDate></item><item><title><![CDATA[Reply to ListBox befüllen und Löschen on Sun, 17 Dec 2006 18:06:59 GMT]]></title><description><![CDATA[<p>Trotzdem musst Du TCHAR verwenden und dann halt</p>
<pre><code class="language-cpp">pszBuffer = malloc(sizeof(TCHAR)*len));
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1193604</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1193604</guid><dc:creator><![CDATA[Jochen Kalmbach]]></dc:creator><pubDate>Sun, 17 Dec 2006 18:06:59 GMT</pubDate></item><item><title><![CDATA[Reply to ListBox befüllen und Löschen on Sun, 17 Dec 2006 18:57:41 GMT]]></title><description><![CDATA[<p>hmm das löst ja aber nicht mein eigentliches Problem</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1193624</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1193624</guid><dc:creator><![CDATA[mazeli]]></dc:creator><pubDate>Sun, 17 Dec 2006 18:57:41 GMT</pubDate></item><item><title><![CDATA[Reply to ListBox befüllen und Löschen on Sun, 17 Dec 2006 19:33:59 GMT]]></title><description><![CDATA[<p>Warum nicht?<br />
Dein problem liegt in den Folgenden Zeilen begraben:</p>
<pre><code class="language-cpp">// Zeilenlänge der Eingabe ermitteln 
              iLength = SendMessage(hwndEdit1, EM_LINELENGTH, 0, 0); 
              iLength2 = SendMessage(hwndEdit2, EM_LINELENGTH, 0, 0); 

              x = iLength + iLength2; 

              // Speicher mit entsprechender Länge 
              pszBuffer = malloc(x); 
              pszBuffer2 = malloc(iLength2); 
              // Text mit EM_GETLINE nach pszBuffer auslesen 
              // (LPARAM) (LPCSTR) pszBuffer; = address of buffer for line 

              SendMessage(hwndEdit1, EM_GETLINE, 0, (LPARAM) (LPCSTR) pszBuffer); 
              SendMessage(hwndEdit2, EM_GETLINE, 0, (LPARAM) (LPCSTR) pszBuffer2); 
              // Begrüßungstext ausgeben und anzeigen 
              SetWindowText(hwndText2, (LPCSTR) pszBuffer);  // auf const char string zu casten 
              ShowWindow(hwndText1, SW_SHOWNORMAL);          // jetzt Text1 anzeigen 
              ShowWindow(hwndText2, SW_SHOWNORMAL);          // jetzt Text2 anzeigen 

              // Anzeige in Listbox 
              SendMessage(hwndList, LB_ADDSTRING, 0, (LONG) (LPCSTR) pszBuffer);
</code></pre>
<p>Und hier ist ein Hauptproblem das verwenden von &quot;char&quot; anstelle von TCHAR&quot;.</p>
<p>Auch fehlt natürlich das &quot;zusammenfügen&quot; der Strings (siehe _tcscat).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1193642</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1193642</guid><dc:creator><![CDATA[Jochen Kalmbach]]></dc:creator><pubDate>Sun, 17 Dec 2006 19:33:59 GMT</pubDate></item><item><title><![CDATA[Reply to ListBox befüllen und Löschen on Mon, 18 Dec 2006 15:04:44 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">...

switch(LOWORD(wParam))	// Behandlung der Buttons
		  {
		  case 1:
			   // Zeilenlänge der Eingabe ermitteln
			  iLength = SendMessage(hwndEdit1, EM_LINELENGTH, 0, 0);
			  iLength2 = SendMessage(hwndEdit2, EM_LINELENGTH, 0, 0);

			  x = iLength + iLength2;

			  // Speicher mit entsprechender Länge
			  pszBuffer = malloc(iLength);
			  pszBuffer2 = malloc(iLength2);
			  // Text mit EM_GETLINE nach pszBuffer auslesen
			  // (LPARAM) (LPCSTR) pszBuffer; = address of buffer for line

			  SendMessage(hwndEdit1, EM_GETLINE, 0, (LPARAM) (LPCSTR) pszBuffer);
			  SendMessage(hwndEdit2, EM_GETLINE, 0, (LPARAM) (LPCSTR) pszBuffer);

			  _tcscat(pszBuffer, pszBuffer2);

			  // Begrüßungstext ausgeben und anzeigen
			  SetWindowText(hwndText2, (LPCSTR) pszBuffer);  // auf const char string zu casten
			  ShowWindow(hwndText1, SW_SHOWNORMAL);          // jetzt Text1 anzeigen
			  ShowWindow(hwndText2, SW_SHOWNORMAL);          // jetzt Text2 anzeigen

			  // Anzeige in Listbox
			  SendMessage(hwndList, LB_ADDSTRING, 0, (LONG) (LPCSTR) pszBuffer);

			  break;

...
</code></pre>
<p>Habs jetzt mal so versucht</p>
<p>Oben das auch so geändert</p>
<pre><code class="language-cpp">TCHAR       * pszBuffer;	// Zeiger auf Begrüßungstext
	 TCHAR		 * pszBuffer2;
</code></pre>
<p>Wenn ich jetzt nichts in die Felder schreibe und dann auf Ok gehe schreibt er mir irgendwelche Zeichen rein.</p>
<p>Wenn ich im ersten was drin hab und das zweite leer ist kommen auch nur irgendwelche Zeichen.</p>
<p>Wenn ich dann im ersten was stehen habe und ins zweite was schreibe übernimmt er das zweite in die Listbox und hängt noch komisches Zeugs an.</p>
<p>jetzt steh ich total aufem Schlauch, hab mich schon vergoogelt an der _tcscat funktion, finde da allerdings keine richtige erklärung. Auch die Visual Studio hilfe sagt nichts.</p>
<pre><code class="language-cpp">SetWindowText(hwndText2, (LPCSTR) pszBuffer);  // auf const char string zu casten
			  ShowWindow(hwndText1, SW_SHOWNORMAL);          // jetzt Text1 anzeigen
			  ShowWindow(hwndText2, SW_SHOWNORMAL);          // jetzt Text2 anzeigen
</code></pre>
<p>Die 3 Zeilen kann ich trotz Kommentar nicht nachvollziehen was sie machen.</p>
<p>Oh man dachte nicht das dass so kompliziert wird <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":-)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1194057</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1194057</guid><dc:creator><![CDATA[mazeli]]></dc:creator><pubDate>Mon, 18 Dec 2006 15:04:44 GMT</pubDate></item><item><title><![CDATA[Reply to ListBox befüllen und Löschen on Mon, 18 Dec 2006 16:26:07 GMT]]></title><description><![CDATA[<p>Sagmal, hast Du Dir überhaupt durchgelesen, was Jochen oben gepostet hat ?</p>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/27a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--right_arrow"
      title=":arrow_right:"
      alt="➡"
    /></p>
<p>Jochen Kalmbach schrieb:</p>
<blockquote>
<p>Trotzdem musst Du TCHAR verwenden und dann halt</p>
<pre><code class="language-cpp">pszBuffer = malloc(sizeof(TCHAR)*len));
</code></pre>
</blockquote>
<p>EDIT: Auch wenn das Dein Problem warscheinlich noch nciht lösen wird...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1194107</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1194107</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Mon, 18 Dec 2006 16:26:07 GMT</pubDate></item><item><title><![CDATA[Reply to ListBox befüllen und Löschen on Mon, 18 Dec 2006 16:38:05 GMT]]></title><description><![CDATA[<p>Des Weiteren verwendest Du die Nachricht <a href="http://msdn2.microsoft.com/en-us/library/ms672074.aspx" rel="nofollow">EM_GETLINE</a> falsch, denn:</p>
<p>MSDN zu EM_GETLINE schrieb:</p>
<blockquote>
<p>Before sending the message, set the first word of this buffer to the size, in TCHARs, of the buffer.</p>
</blockquote>
<p>Außerdem würde ich Dir empfehlen die Verwendung von EM_LINELENGTH zu prüfen..., glaube da ist auch irgendwas falsch. Ich würde Dir auch gerne sagen was, nur irgendwie steige ich durch Deinen Quellcode nicht durch, sorry- <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /> .</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1194114</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1194114</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Mon, 18 Dec 2006 16:38:05 GMT</pubDate></item><item><title><![CDATA[Reply to ListBox befüllen und Löschen on Mon, 18 Dec 2006 16:51:14 GMT]]></title><description><![CDATA[<p>joar ist ja net mein quellcode. den gabs zur aufgabenstellung dazu...wir sollen nur einige funktionen ergänzen bzw ändern/erweitern.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1194133</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1194133</guid><dc:creator><![CDATA[mazeli]]></dc:creator><pubDate>Mon, 18 Dec 2006 16:51:14 GMT</pubDate></item></channel></rss>