<?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[OPENFILENAME struktur und sortierungsalgorithmus]]></title><description><![CDATA[<p>jo, ich hab zwei probleme:</p>
<p>1.könnte mir mal jemand ein beispiel für eine komplette ausgefüllte OPENFILENAME struktur aufschreiben? in der msdn is ja nur eine aufzählung, aws man alles ausfüllen kann, anhand dessen bin ich auch schon so weit:</p>
<pre><code class="language-cpp">ofn.lStructSize = sizeof(OPENFILENAME);
	ofn.hwndOwner = hWnd;
	ofn.hInstance = hInstance;
	ofn.lpstrFile = *Program.buffer3;
</code></pre>
<p>wie bekomme ich jetzt das mit dem dateitypfilter hin? den teil hab ich net wirklich verstanden...</p>
<p>2.ich brauch für mein projekt ebenfalls einen algorythmus, der eine char in verschiedene char variablen aufteillt. und zwar an den stellen wo ein komma steht.( das lehrzeichen hinter dem komma und das komma selbst sollen verschwinden). desweiteren sollen noch die Lehrzeichen inerhalb der wörter dur dieses zeichen '_' ersetzt werden. bisher hab ich mit einiger hilfe das hier hinbekommen:</p>
<pre><code class="language-cpp">#include&lt;iostream&gt;
#include&lt;string&gt;
#include&lt;vector&gt;
using namespace std;

char text[] = &quot;test1, test2, test3, test4&quot;;
vector&lt;string&gt; someFunc(const string&amp; in);

int main()
{
    vector&lt;string&gt; dat;
    dat = someFunc(text);

    for(vector&lt;string&gt;::iterator iter=dat.begin();iter != dat.end();iter++)
    {
        cout&lt;&lt;*iter&lt;&lt;endl;
    }

    getchar();
    getchar();
    return 0;

}

vector&lt;string&gt; someFunc(const string&amp; in)
{
 string tmp;
 vector&lt;string&gt; erg;
 for(string::const_iterator iter= in.begin();iter != in.end();iter++)
 {
        if(*iter == ',')
        {
            erg.push_back(tmp);
            tmp=&quot;&quot;;
            *iter++;
        }
        else if(*iter == ' ')
        {
            erg.push_back(tmp);
            tmp=&quot;_&quot;;
        }
        else
        {
            tmp += *iter;
        }
 }
 erg.push_back(tmp);
 return erg;
}
</code></pre>
<p>aber das trennt erstens in strings und zweitens fängt es nach den lehrzeiche, die durch _ ersetzt weden sollen einen neuen string an... hoffe ihr könnt mir helfen. thx im vorraus.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/196802/openfilename-struktur-und-sortierungsalgorithmus</link><generator>RSS for Node</generator><lastBuildDate>Fri, 01 May 2026 22:25:03 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/196802.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 03 Nov 2007 08:20:05 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to OPENFILENAME struktur und sortierungsalgorithmus on Sat, 03 Nov 2007 08:20:05 GMT]]></title><description><![CDATA[<p>jo, ich hab zwei probleme:</p>
<p>1.könnte mir mal jemand ein beispiel für eine komplette ausgefüllte OPENFILENAME struktur aufschreiben? in der msdn is ja nur eine aufzählung, aws man alles ausfüllen kann, anhand dessen bin ich auch schon so weit:</p>
<pre><code class="language-cpp">ofn.lStructSize = sizeof(OPENFILENAME);
	ofn.hwndOwner = hWnd;
	ofn.hInstance = hInstance;
	ofn.lpstrFile = *Program.buffer3;
</code></pre>
<p>wie bekomme ich jetzt das mit dem dateitypfilter hin? den teil hab ich net wirklich verstanden...</p>
<p>2.ich brauch für mein projekt ebenfalls einen algorythmus, der eine char in verschiedene char variablen aufteillt. und zwar an den stellen wo ein komma steht.( das lehrzeichen hinter dem komma und das komma selbst sollen verschwinden). desweiteren sollen noch die Lehrzeichen inerhalb der wörter dur dieses zeichen '_' ersetzt werden. bisher hab ich mit einiger hilfe das hier hinbekommen:</p>
<pre><code class="language-cpp">#include&lt;iostream&gt;
#include&lt;string&gt;
#include&lt;vector&gt;
using namespace std;

char text[] = &quot;test1, test2, test3, test4&quot;;
vector&lt;string&gt; someFunc(const string&amp; in);

int main()
{
    vector&lt;string&gt; dat;
    dat = someFunc(text);

    for(vector&lt;string&gt;::iterator iter=dat.begin();iter != dat.end();iter++)
    {
        cout&lt;&lt;*iter&lt;&lt;endl;
    }

    getchar();
    getchar();
    return 0;

}

vector&lt;string&gt; someFunc(const string&amp; in)
{
 string tmp;
 vector&lt;string&gt; erg;
 for(string::const_iterator iter= in.begin();iter != in.end();iter++)
 {
        if(*iter == ',')
        {
            erg.push_back(tmp);
            tmp=&quot;&quot;;
            *iter++;
        }
        else if(*iter == ' ')
        {
            erg.push_back(tmp);
            tmp=&quot;_&quot;;
        }
        else
        {
            tmp += *iter;
        }
 }
 erg.push_back(tmp);
 return erg;
}
</code></pre>
<p>aber das trennt erstens in strings und zweitens fängt es nach den lehrzeiche, die durch _ ersetzt weden sollen einen neuen string an... hoffe ihr könnt mir helfen. thx im vorraus.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1396856</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1396856</guid><dc:creator><![CDATA[Arathorns Sohn]]></dc:creator><pubDate>Sat, 03 Nov 2007 08:20:05 GMT</pubDate></item><item><title><![CDATA[Reply to OPENFILENAME struktur und sortierungsalgorithmus on Sun, 04 Nov 2007 09:11:00 GMT]]></title><description><![CDATA[<p>kommt schon. i-jemand weiß doch bestimmt die antwort...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1397333</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1397333</guid><dc:creator><![CDATA[Arathorns Sohn]]></dc:creator><pubDate>Sun, 04 Nov 2007 09:11:00 GMT</pubDate></item><item><title><![CDATA[Reply to OPENFILENAME struktur und sortierungsalgorithmus on Sun, 04 Nov 2007 22:55:42 GMT]]></title><description><![CDATA[<p>zu 1.</p>
<p>lpstrFilter besteht aus einer Liste nullterminierter Strings, wovon zwei aufeinanderfolgende Strings immer zusammengehören. Der erste ist die Beschreibung des Filters, der zweite der Dateifilter selbst. Es muss also immer eine durch 2 teilbare Anzahl solcher nullterminierter Strings in lpstrFilter stehen.<br />
In der Doku ist doch auch ein Beispiel:</p>
<pre><code class="language-cpp">&quot;All Files\0*.*\0\0&quot;
</code></pre>
<p>Bestehend aus der Beschreibung</p>
<pre><code class="language-cpp">&quot;All Files\0&quot;
</code></pre>
<p>und dem Dateifilter</p>
<pre><code class="language-cpp">&quot;*.*\0&quot;
</code></pre>
<p>Die Liste wird mit einem separaten Nullzeichen abgeschlossen.</p>
<p>Wenn du mehr Filter brauchst, musst du die Liste entsprechend erweitern, zB:</p>
<pre><code class="language-cpp">&quot;Configuration files (*.ini)\0*.ini\0All files (*.*)\0*.*\0\0&quot;
</code></pre>
<p>zu 2.</p>
<p>Erstmal, was hier gemacht wird, funktioniert nicht wirklich zuverlässig. Du änderst tmp, dadurch kann der Iterator ungültig werden. Beim ersten Fund eines Kommas ist es eigentlich schon geschehen, da tmp geleert wird. Besser ist es, du veränderst an der Quelle (tmp) selbst nichts, und machst die jeweiligen Anpassungen beim Ergebnis (erg) bzw. beim Kopieren. Oder du durchläufst die Quelle indizierend.</p>
<p>Zur Vorgehensweise:<br />
- du suchst Zeichen für Zeichen nach einem Komma<br />
- sofern eines gefunden wird, kopierst du den String bis dahin, ausgehend vom Anfang oder der letzten Fundstelle und ohne Komma, ins Ergebnis<br />
- nachfolgendes Leerzeichen überspringen<br />
- parallel dazu wird jedes Leerzeichen zu '_' umgewandelt</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1397802</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1397802</guid><dc:creator><![CDATA[groovemaster]]></dc:creator><pubDate>Sun, 04 Nov 2007 22:55:42 GMT</pubDate></item><item><title><![CDATA[Reply to OPENFILENAME struktur und sortierungsalgorithmus on Mon, 05 Nov 2007 12:13:17 GMT]]></title><description><![CDATA[<p>THX, für die antworten. aber du kanst mir nich sagen, warum mir die save file box nicht angezeigt wir( mit oben geposteter OPENFILENAME struktur). Ich rufe sie per GetSaveFileName(&amp;ofn) auf, aber es passiert nix, nada, niente...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1397966</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1397966</guid><dc:creator><![CDATA[Arathorns Sohn]]></dc:creator><pubDate>Mon, 05 Nov 2007 12:13:17 GMT</pubDate></item><item><title><![CDATA[Reply to OPENFILENAME struktur und sortierungsalgorithmus on Tue, 06 Nov 2007 15:45:47 GMT]]></title><description><![CDATA[<p>Würde mal spontan darauf tippen, dass du den Member nMaxFile nicht auf eine gültige Grösse gesetzt hast.</p>
<p>Du solltest auch darauf achten, dass alle relevanten Member einen gültigen Wert haben. Entweder die Member per Hand einzeln setzen oder einfach default initialisieren:</p>
<pre><code class="language-cpp">OPENFILENAME ofn = {};
// bzw.
ofn = OPENFILENAME();
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1398768</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1398768</guid><dc:creator><![CDATA[groovemaster]]></dc:creator><pubDate>Tue, 06 Nov 2007 15:45:47 GMT</pubDate></item><item><title><![CDATA[Reply to OPENFILENAME struktur und sortierungsalgorithmus on Tue, 06 Nov 2007 16:20:09 GMT]]></title><description><![CDATA[<p>thx. wenn ich die auf vordefiniert setzte, kann ich dan einzelne noch ändern?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1398791</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1398791</guid><dc:creator><![CDATA[Arathorns Sohn]]></dc:creator><pubDate>Tue, 06 Nov 2007 16:20:09 GMT</pubDate></item><item><title><![CDATA[Reply to OPENFILENAME struktur und sortierungsalgorithmus on Tue, 06 Nov 2007 16:34:03 GMT]]></title><description><![CDATA[<p>klappt noch immer net... aufruf sieht so aus: GetSaveFileName(&amp;ofn); richtig, oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1398799</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1398799</guid><dc:creator><![CDATA[Arathorns Sohn]]></dc:creator><pubDate>Tue, 06 Nov 2007 16:34:03 GMT</pubDate></item><item><title><![CDATA[Reply to OPENFILENAME struktur und sortierungsalgorithmus on Wed, 07 Nov 2007 16:06:21 GMT]]></title><description><![CDATA[<p>braucht ihr den kompletten code?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1399282</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1399282</guid><dc:creator><![CDATA[Arathorns Sohn]]></dc:creator><pubDate>Wed, 07 Nov 2007 16:06:21 GMT</pubDate></item><item><title><![CDATA[Reply to OPENFILENAME struktur und sortierungsalgorithmus on Thu, 08 Nov 2007 11:48:41 GMT]]></title><description><![CDATA[<p>Hast du fuer das ofn.lpstrFile ein vordefiniertes char/wchar Array verwendet?<br />
z.B. File[1024]=&quot; &quot;;</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1399681</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1399681</guid><dc:creator><![CDATA[Ananke]]></dc:creator><pubDate>Thu, 08 Nov 2007 11:48:41 GMT</pubDate></item><item><title><![CDATA[Reply to OPENFILENAME struktur und sortierungsalgorithmus on Thu, 08 Nov 2007 13:01:25 GMT]]></title><description><![CDATA[<p>Den dekliniere ich in einer Klasse, so:<br />
char *buffer3[256]; //Buffer für Filename<br />
als Public.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1399736</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1399736</guid><dc:creator><![CDATA[Arathorns Sohn]]></dc:creator><pubDate>Thu, 08 Nov 2007 13:01:25 GMT</pubDate></item><item><title><![CDATA[Reply to OPENFILENAME struktur und sortierungsalgorithmus on Thu, 08 Nov 2007 17:06:18 GMT]]></title><description><![CDATA[<p>Arathorns Sohn schrieb:</p>
<blockquote>
<p>Den dekliniere ich in einer Klasse, so:<br />
char *buffer3[256]; //Buffer für Filename<br />
als Public.</p>
</blockquote>
<p>EDIT: Du musst dem Array-Zeiger bei der Initialisierung einen Wert übergeben, da der Zeiger sonst keine Addresse enthält.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1399886</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1399886</guid><dc:creator><![CDATA[Ananke]]></dc:creator><pubDate>Thu, 08 Nov 2007 17:06:18 GMT</pubDate></item><item><title><![CDATA[Reply to OPENFILENAME struktur und sortierungsalgorithmus on Thu, 08 Nov 2007 17:35:58 GMT]]></title><description><![CDATA[<p>das geht leider nicht. wenn ich schreibe char *buffer3[] = NULL; meint er, das das nicht geht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1399907</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1399907</guid><dc:creator><![CDATA[Arathorns Sohn]]></dc:creator><pubDate>Thu, 08 Nov 2007 17:35:58 GMT</pubDate></item><item><title><![CDATA[Reply to OPENFILENAME struktur und sortierungsalgorithmus on Thu, 08 Nov 2007 18:13:34 GMT]]></title><description><![CDATA[<p>Arathorns Sohn schrieb:</p>
<blockquote>
<p>das geht leider nicht. wenn ich schreibe char *buffer3[] = NULL; meint er, das das nicht geht.</p>
</blockquote>
<p>Versuchs mal so<br />
char* buffer3[256] ={&quot;&quot;,&quot;&quot;}; (enstpricht 2 Stringelementen)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1399924</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1399924</guid><dc:creator><![CDATA[Ananke]]></dc:creator><pubDate>Thu, 08 Nov 2007 18:13:34 GMT</pubDate></item><item><title><![CDATA[Reply to OPENFILENAME struktur und sortierungsalgorithmus on Thu, 08 Nov 2007 19:12:29 GMT]]></title><description><![CDATA[<p>Da meint Borland:</p>
<p>[C++ Fehler] Main.h(24): E2233 Klassenelement kann hier nicht initialisiert werden</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1399945</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1399945</guid><dc:creator><![CDATA[Arathorns Sohn]]></dc:creator><pubDate>Thu, 08 Nov 2007 19:12:29 GMT</pubDate></item><item><title><![CDATA[Reply to OPENFILENAME struktur und sortierungsalgorithmus on Thu, 08 Nov 2007 19:23:00 GMT]]></title><description><![CDATA[<p>Arathorns Sohn schrieb:</p>
<blockquote>
<p>Da meint Borland:</p>
<p>[C++ Fehler] Main.h(24): E2233 Klassenelement kann hier nicht initialisiert werden</p>
</blockquote>
<p>Hmm, ich habe es mir noch mal überlegt. Eigentlich sollte es schon reichen, wenn du die Initialisierung weglässt...<br />
Kannst du nicht mal den Code posten? <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>
<p>EDIT: Du musst aber *buffer3 irgendwo initialisieren (z.B. *buffer3=&quot; &quot;; )</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1399948</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1399948</guid><dc:creator><![CDATA[Ananke]]></dc:creator><pubDate>Thu, 08 Nov 2007 19:23:00 GMT</pubDate></item><item><title><![CDATA[Reply to OPENFILENAME struktur und sortierungsalgorithmus on Fri, 09 Nov 2007 12:56:55 GMT]]></title><description><![CDATA[<p>THX, jetzt gibts keinen fehler mehr, das fenster wird aber noch immer net angezeigt... hier mal der code( sagt, wenn ihr die header braucht, aber da steht eh nich viel zum thema drin^^)</p>
<pre><code class="language-cpp">#include&quot;Main.h&quot;
App Program;
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);

App::App()   //Konstruktorfunktion
{
	 strcpy(szClassName, &quot;Vokabeltrainer&quot;);
}

App::~App()  //Destruktorfunktion
{
}

HWND hWnd; // Window Handle
MSG message; //Messages
WNDCLASSEX wc; //Window class
HMENU menu;    // Menu Handle
OPENFILENAME ofn = {}; //OpenFileName structure
*buffer3[] = {NULL};

int App::Vokabeldatei_erstellen()
{
return 0;
}

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR szCmdLine, int iCmdShow)
{

	wc.hInstance = hInstance;
	wc.lpszClassName = Program.szClassName;
	wc.lpfnWndProc = WndProc;
	wc.style = CS_HREDRAW | CS_VREDRAW;
	wc.cbSize = sizeof(WNDCLASSEX);
	wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);
	wc.hIconSm = LoadIcon(NULL, IDI_APPLICATION);
	wc.hCursor = LoadCursor(NULL, IDC_ARROW);
	wc.lpszMenuName = NULL;
	wc.cbClsExtra = 0;
	wc.cbWndExtra = 0;
	wc.hbrBackground = (HBRUSH) COLOR_BACKGROUND;

	if(!RegisterClassEx(&amp;wc))
	{
	   return 0;
	}

	ofn.lStructSize = sizeof(OPENFILENAME);
	ofn.hwndOwner = hWnd;
	ofn.hInstance = hInstance;
	ofn.lpstrFile = *Program.buffer3;

	hWnd = CreateWindowEx(
		   WS_EX_CLIENTEDGE,
		   Program.szClassName,
		   &quot;Vokabeltrainer&quot;,
		   WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_MINIMIZEBOX,
		   CW_USEDEFAULT,
		   CW_USEDEFAULT,
		   600,
		   400,
		   NULL,
		   NULL,
		   hInstance,
		   NULL);

	ShowWindow(hWnd, iCmdShow);

	menu = LoadMenu(hInstance, MAKEINTRESOURCE(ID_MENU));
	SetMenu(hWnd, menu);
	//UpdateWindow(hWnd);

	while (GetMessage (&amp;message, NULL, 0, 0))
	{
		TranslateMessage(&amp;message);
		DispatchMessage(&amp;message);
	}

	return message.wParam;
}

LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{

	static HBRUSH hBrush; //Brush für den schrifthintergrund
	static RECT rect;     //Fenstergröße
    const char szUeberschrift1[] = &quot;Englische Vokabel:&quot;; // Überschrift für das eingabefelde der englischen vokabel
    const char szUeberschrift2[] = &quot;Deutsche Vokabel:&quot;; // Das selbe für die deutsche Vokabel
    const char szUeberschrift3[] = &quot;Inhalt der Vokabeldatei:&quot;; // jo, nomal für das dritte editfeld
    const char szUeberschrift4[] = &quot;Bereits abgefragte Vokabeln:&quot;; // &lt;-
	Program.optionen[0] = FALSE;
	//Program.optionen[1] = FALSE;
	DWORD d;
	switch (message) {

	   case WM_SIZE:
            {
         rect.left    = 0;
         rect.top     = 0;
         rect.right   = LOWORD(lParam);
         rect.bottom  = HIWORD(lParam);
         return 0;
			 }
	   		case WM_COMMAND:
        {
            switch (LOWORD(wParam))
            {
				case IDM_NEWVOK:
				{
					Program.Vokabeldatei_erstellen();
					break;
                }
                case IDM_OPENVOK:
                case IDM_SAVEVOK:
                case IDM_PRACTICEVOK:
                case IDM_HELP:
                {
                    MessageBox(hWnd, TEXT(&quot;Funktion noch nicht implementiert&quot;), TEXT(&quot;Vokabeltrainer&quot;), MB_OK | MB_ICONWARNING);
                } break;
                case IDM_\1:
				{
                    GetSaveFileName(&amp;ofn);
					//MessageBox(NULL, TEXT(&quot;Vokabeltrainer\nCopyright bei Martin 'Arathorns Sohn' Alsfasser\nDark Grass Software&quot;), TEXT(&quot;Über das Programm&quot;), MB_OK | MB_ICONINFORMATION);
                } break;
                case IDM_EXIT:
                {
                    PostQuitMessage(0);
                } break;
			}

			if (lParam == (LPARAM)GetDlgItem(hWnd, IDC_BTN_INSERT)) {
			if (HIWORD(wParam) == BN_CLICKED) {
				MessageBox(NULL, TEXT(&quot;Funktion noch nicht implementiert&quot;), TEXT(&quot;Vokabeltrainer&quot;), MB_ICONWARNING | MB_OK);
			}

			}

		} break;

	   case WM_CTLCOLORSTATIC:
	   {
		   if ((HWND) lParam == GetDlgItem(hWnd, IDC_EDIT_1)) {
			   SetBkColor((HDC)wParam, RGB(255, 255, 255));
			   return (LRESULT)hBrush;
		   }
		   SetBkMode((HDC)wParam, GetSysColor(COLOR_WINDOW));
		   SetBkColor((HDC)wParam, GetSysColor(COLOR_WINDOW));
		   return 0;
       }break;

	   case WM_CTLCOLOREDIT:
	   {
		   if((HWND)lParam == GetDlgItem(hWnd, IDC_EDIT_2))
		   {
			   SetBkColor((HDC)wParam, RGB(255, 255, 255));
			   return (LRESULT)hBrush;
		   }
		   if((HWND)lParam == GetDlgItem(hWnd, IDC_EDIT_3))
		   {
			   SetBkColor((HDC)wParam, RGB(255, 255, 255));
			   return(LRESULT)hBrush;
		   }

	   }break;

	   case WM_CREATE:
	   {
		   hBrush = CreateSolidBrush(RGB(255, 255, 255));

		   if(CreateWindowEx(    WS_EX_CLIENTEDGE, TEXT(&quot;edit&quot;), NULL, WS_CHILD | WS_VISIBLE | ES_READONLY | WS_VSCROLL |
                                ES_AUTOVSCROLL | ES_MULTILINE, 310, 30, 270, 310, hWnd, (HMENU)IDC_EDIT_1, ((LPCREATESTRUCT)lParam)-&gt;hInstance,
								NULL) == NULL ||

           CreateWindowEx(    WS_EX_CLIENTEDGE, TEXT(&quot;edit&quot;), NULL, WS_CHILD | WS_VISIBLE, 40, 70, 230, 22, hWnd, (HMENU)IDC_EDIT_2,
								((LPCREATESTRUCT)lParam)-&gt;hInstance, NULL) == NULL ||

		   CreateWindowEx(    WS_EX_CLIENTEDGE, TEXT(&quot;edit&quot;), NULL, WS_CHILD | WS_VISIBLE, 40, 120, 230, 22, hWnd, (HMENU)IDC_EDIT_3,
								((LPCREATESTRUCT)lParam)-&gt;hInstance, NULL) == NULL ||

		   CreateWindowEx(    0, TEXT(&quot;button&quot;), TEXT(&quot;Eintragen&quot;), WS_CHILD | WS_VISIBLE, 70, 150, 160, 22, hWnd, (HMENU)IDC_BTN_INSERT,
								((LPCREATESTRUCT)lParam)-&gt;hInstance, NULL) == NULL)
								{
								return -1;
								}

		   UpdateWindow(hWnd);
	   }break;

       case WM_PAINT:
                {
                     HDC hDC;
                     PAINTSTRUCT ps;

                     hDC = BeginPaint(hWnd, &amp;ps);
                     {
                         SetBkMode(hDC, TRANSPARENT);
                         TextOut(hDC, 40, 50, szUeberschrift1, sizeof(szUeberschrift1) - 1);
                         TextOut(hDC, 40, 100, szUeberschrift2, sizeof(szUeberschrift2) - 1);
						 if (Program.optionen[0] == TRUE)
                         {
                             TextOut(hDC, 310, 10, szUeberschrift4, sizeof(szUeberschrift4) - 1);
                         }
                         else if(Program.optionen[0] == FALSE)
                         {
                             TextOut(hDC, 310, 10, szUeberschrift3, sizeof(szUeberschrift3) - 1);
                         }

                     }
					 EndPaint(hWnd, &amp;ps);
				}break;

	   case WM_DESTROY:
	   {
		   if (hBrush) {
			   DeleteObject(hBrush);
		   }
		   PostQuitMessage (0);
		   break;
       }

	}

   	return DefWindowProc(hWnd, message, wParam, lParam);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1400285</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1400285</guid><dc:creator><![CDATA[Arathorns Sohn]]></dc:creator><pubDate>Fri, 09 Nov 2007 12:56:55 GMT</pubDate></item><item><title><![CDATA[Reply to OPENFILENAME struktur und sortierungsalgorithmus on Fri, 09 Nov 2007 18:36:40 GMT]]></title><description><![CDATA[<p>Ich sehe immer noch nirgendwo, dass nMaxFile auf einen gültigen Wert gesetzt wird. Auch lpstrFile ist für mich noch fraglich. Du solltest dir die Platform SDK Dokumentation wirklich nochmal genau anschauen.</p>
<p>Hier mal ein kurzes Beispiel, wie es aussehen kann:</p>
<pre><code class="language-cpp">TCHAR buf[MAX_PATH] = TEXT(&quot;&quot;);
OPENFILENAME ofn = {};
ofn.lStructSize = sizeof(ofn);
ofn.hwndOwner = hWnd;
ofn.hInstance = hInstance;
ofn.lpstrFile = buf;
ofn.nMaxFile = sizeof(buf) / sizeof(*buf);
GetSaveFileName(&amp;ofn);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1400493</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1400493</guid><dc:creator><![CDATA[groovemaster]]></dc:creator><pubDate>Fri, 09 Nov 2007 18:36:40 GMT</pubDate></item><item><title><![CDATA[Reply to OPENFILENAME struktur und sortierungsalgorithmus on Fri, 09 Nov 2007 19:31:50 GMT]]></title><description><![CDATA[<p>ach, ok, dann hab ich deinen alten post von letzter seite falsch verstanden... ich dachte, das müsse ich nicht, wenn ich<br />
OPENFILENAME ofn = {}; verwende...</p>
<p>es funzt, danke sehr^^ aber ein klitzekleines problem hab ich noch. ich mach das ganze für die schule, und wollte es auf einem schulcomputer zum löaufen bringen( altes teil, win 2000^^) dabei bekomme ich diese fehlermeldung( das bild sieht unten so seltsam aus, weil ich den usb stick zu früh rausgezogen habe^^):<br />
<a href="http://s2.directupload.net/file/d/1241/vh77xdrd_jpg.htm" rel="nofollow"></a><a href="http://s2.directupload.net/images/071109/temp/vh77xdrd.jpg" rel="nofollow">http://s2.directupload.net/images/071109/temp/vh77xdrd.jpg</a></p>
<p>was kann ich da machen? die bemängelte dll raussuchen und in edn system32 ordner tun oder wie? den projektordner hab ich übrigends komplett aufm stick mitgenommen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1400515</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1400515</guid><dc:creator><![CDATA[Arathorns Sohn]]></dc:creator><pubDate>Fri, 09 Nov 2007 19:31:50 GMT</pubDate></item><item><title><![CDATA[Reply to OPENFILENAME struktur und sortierungsalgorithmus on Sat, 10 Nov 2007 23:15:54 GMT]]></title><description><![CDATA[<p>Arathorns Sohn schrieb:</p>
<blockquote>
<p>was kann ich da machen? die bemängelte dll raussuchen und in edn system32 ordner tun oder wie?</p>
</blockquote>
<p>Yep, genau so. Ansonsten schau mal, ob der Borland Kompiler bzw. deine IDE eine Option bietet, statisch zu linken. Dann sollte eigentlich sämtlicher Code der Runtime direkt in die Executable gepackt werden, so dass nur noch Abhängigkeiten bezüglich der System Bibliotheken (kernel32, user32, ...) bestehen. Und die sind bei Windows immer vorhanden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1401175</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1401175</guid><dc:creator><![CDATA[groovemaster]]></dc:creator><pubDate>Sat, 10 Nov 2007 23:15:54 GMT</pubDate></item><item><title><![CDATA[Reply to OPENFILENAME struktur und sortierungsalgorithmus on Sun, 11 Nov 2007 09:20:35 GMT]]></title><description><![CDATA[<p>danke, du hat mir echt sehr geholfen^^</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1401227</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1401227</guid><dc:creator><![CDATA[Arathorns Sohn]]></dc:creator><pubDate>Sun, 11 Nov 2007 09:20:35 GMT</pubDate></item></channel></rss>