<?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[RegisterClass bei dialogfeldbasierenden Anwendungen]]></title><description><![CDATA[<p>Hi!</p>
<p>Ich habe das Problem, daß ich bei einer dialogfeldbasierenden Anwendung nicht einfach einen Klassennamen registrieren kann. Ich muß von Hand noch in der rc-Datei den Klassennamen eintragen. Bei SDI etc geht es ja einfach mit RegisterClass bzw RegisterClassEx. (siehe Code-Beispiel unten [auskommentiert ist der Versuch mit RegisterClassEx])</p>
<p>Ich habe leider keinen anderen Weg gefunden außer noch in der Ressourcendatei CLASS=&quot;Klassenname&quot; einzutragen.</p>
<p>Gibt es etwas, daß mir das abnimmt oder ist es ein Feature von MS, daß man es von Hand machen muß?</p>
<p>Und hätte noch jemand eine Idee wie ich das bei einer Konsolenanwendung mache?</p>
<pre><code class="language-cpp">BOOL CSM_BackupQueuerApp::InitApplication() 
{
    WNDCLASS wc;

    wc.style = CS_DBLCLKS | CS_SAVEBITS | CS_BYTEALIGNWINDOW;
    wc.lpfnWndProc = DefDlgProc;
    wc.cbClsExtra = 0;
    wc.cbWndExtra = DLGWINDOWEXTRA;
    wc.hInstance = AfxGetInstanceHandle();
    wc.hIcon = LoadIcon(IDR_MAINFRAME);
    wc.hCursor = ::LoadCursor(NULL, IDC_ARROW);
    wc.hbrBackground = (HBRUSH)COLOR_WINDOW + 1;
    wc.lpszMenuName = NULL;
    wc.lpszClassName = &quot;Klassenname&quot;;
    ::RegisterClass(&amp;wc);   
    return CWinApp::InitApplication();

    /*WNDCLASSEX wc;

    wc.cbSize = sizeof(wc);
    wc.style = CS_DBLCLKS | CS_SAVEBITS | CS_BYTEALIGNWINDOW;
    wc.lpfnWndProc = DefDlgProc;
    wc.cbClsExtra = 0;
    wc.cbWndExtra = DLGWINDOWEXTRA;
    wc.hInstance = AfxGetInstanceHandle();
    wc.hIcon = LoadIcon(IDR_MAINFRAME);
    wc.hCursor = ::LoadCursor(NULL, IDC_ARROW);
    wc.hbrBackground = (HBRUSH)COLOR_WINDOW + 1;
    wc.lpszMenuName = NULL;
    wc.lpszClassName = &quot;Klassenname&quot;;
    wc.hIcon = NULL;
    ::RegisterClassEx(&amp;wc); 
    return CWinApp::InitApplication();*/
}
</code></pre>
<p>[ Dieser Beitrag wurde am 26.05.2003 um 13:41 Uhr von <strong>Frenzy</strong> editiert. ]</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/5908/registerclass-bei-dialogfeldbasierenden-anwendungen</link><generator>RSS for Node</generator><lastBuildDate>Mon, 13 Apr 2026 08:51:27 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/5908.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 26 May 2003 11:05:00 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to RegisterClass bei dialogfeldbasierenden Anwendungen on Mon, 26 May 2003 11:05:00 GMT]]></title><description><![CDATA[<p>Hi!</p>
<p>Ich habe das Problem, daß ich bei einer dialogfeldbasierenden Anwendung nicht einfach einen Klassennamen registrieren kann. Ich muß von Hand noch in der rc-Datei den Klassennamen eintragen. Bei SDI etc geht es ja einfach mit RegisterClass bzw RegisterClassEx. (siehe Code-Beispiel unten [auskommentiert ist der Versuch mit RegisterClassEx])</p>
<p>Ich habe leider keinen anderen Weg gefunden außer noch in der Ressourcendatei CLASS=&quot;Klassenname&quot; einzutragen.</p>
<p>Gibt es etwas, daß mir das abnimmt oder ist es ein Feature von MS, daß man es von Hand machen muß?</p>
<p>Und hätte noch jemand eine Idee wie ich das bei einer Konsolenanwendung mache?</p>
<pre><code class="language-cpp">BOOL CSM_BackupQueuerApp::InitApplication() 
{
    WNDCLASS wc;

    wc.style = CS_DBLCLKS | CS_SAVEBITS | CS_BYTEALIGNWINDOW;
    wc.lpfnWndProc = DefDlgProc;
    wc.cbClsExtra = 0;
    wc.cbWndExtra = DLGWINDOWEXTRA;
    wc.hInstance = AfxGetInstanceHandle();
    wc.hIcon = LoadIcon(IDR_MAINFRAME);
    wc.hCursor = ::LoadCursor(NULL, IDC_ARROW);
    wc.hbrBackground = (HBRUSH)COLOR_WINDOW + 1;
    wc.lpszMenuName = NULL;
    wc.lpszClassName = &quot;Klassenname&quot;;
    ::RegisterClass(&amp;wc);   
    return CWinApp::InitApplication();

    /*WNDCLASSEX wc;

    wc.cbSize = sizeof(wc);
    wc.style = CS_DBLCLKS | CS_SAVEBITS | CS_BYTEALIGNWINDOW;
    wc.lpfnWndProc = DefDlgProc;
    wc.cbClsExtra = 0;
    wc.cbWndExtra = DLGWINDOWEXTRA;
    wc.hInstance = AfxGetInstanceHandle();
    wc.hIcon = LoadIcon(IDR_MAINFRAME);
    wc.hCursor = ::LoadCursor(NULL, IDC_ARROW);
    wc.hbrBackground = (HBRUSH)COLOR_WINDOW + 1;
    wc.lpszMenuName = NULL;
    wc.lpszClassName = &quot;Klassenname&quot;;
    wc.hIcon = NULL;
    ::RegisterClassEx(&amp;wc); 
    return CWinApp::InitApplication();*/
}
</code></pre>
<p>[ Dieser Beitrag wurde am 26.05.2003 um 13:41 Uhr von <strong>Frenzy</strong> editiert. ]</p>
]]></description><link>https://www.c-plusplus.net/forum/post/28703</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/28703</guid><dc:creator><![CDATA[Frenzy]]></dc:creator><pubDate>Mon, 26 May 2003 11:05:00 GMT</pubDate></item><item><title><![CDATA[Reply to RegisterClass bei dialogfeldbasierenden Anwendungen on Mon, 26 May 2003 11:16:00 GMT]]></title><description><![CDATA[<p>Schonmal in ein EINZIGES Tutorial geschaut?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/28704</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/28704</guid><dc:creator><![CDATA[RenéG]]></dc:creator><pubDate>Mon, 26 May 2003 11:16:00 GMT</pubDate></item><item><title><![CDATA[Reply to RegisterClass bei dialogfeldbasierenden Anwendungen on Mon, 26 May 2003 11:56:00 GMT]]></title><description><![CDATA[<p>Ja habe ich.........So kam ich ja auf den oben beschriebenen Workaround.......</p>
<p>Bei SDIs, MDIs ist es ja auch nicht schwer und wenn mir die Suchfunktion nicht hilft, dann mache ich halt hier nen Thread auf und poste, wie ich es mache. So funktioniert es auch.</p>
<p>Und sollte es irgendwo stehen, wäre es auch hilfreich einen Tip abzugeben, denn keine Antwort wäre ebenso hilfreich gewesen.</p>
<p>MfG<br />
Frenzy</p>
]]></description><link>https://www.c-plusplus.net/forum/post/28705</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/28705</guid><dc:creator><![CDATA[Frenzy]]></dc:creator><pubDate>Mon, 26 May 2003 11:56:00 GMT</pubDate></item><item><title><![CDATA[Reply to RegisterClass bei dialogfeldbasierenden Anwendungen on Mon, 26 May 2003 12:13:00 GMT]]></title><description><![CDATA[<p>??? WORKAROUND ???</p>
<p>Ok, da Du schon Tutorials gesehen hast, ist Dir sicherlich aufgefallen, dass Dein sogenannter Workaround in keinem dieser Tutorials vorhanden ist. Da RegisterClass allerdings notwendig ist, um überhaupt ein Fenster zu initialisieren, kann es sich doch nicht um ein Versehen handeln, denn sonst würde ja keines der Tutorials überhaupt laufen. Damit würde ich doch mal schlussfolgern, dass es sich bei Deinem Workaround um überflüssigen Code handelt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/28706</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/28706</guid><dc:creator><![CDATA[RenéG]]></dc:creator><pubDate>Mon, 26 May 2003 12:13:00 GMT</pubDate></item><item><title><![CDATA[Reply to RegisterClass bei dialogfeldbasierenden Anwendungen on Mon, 26 May 2003 12:49:00 GMT]]></title><description><![CDATA[<p>Das ist mir schon klar, jedoch wenn ich nun aber einen eigenen Klassennamen registrieren will bei meiner dialogfeldbasierenden Anwendung, dann mache ich das wie oben angegeben, indem ich bei InitApplication den selbstgewählten Klassennamen registriere. Leider funktioniert das nur wenn ich von Hand in der RC-Datei den Eintrag änder.</p>
<p>Wenn Du da so ein tolles Tutorial hast, dann wäre ich über einen Link dahin sehr dankbar, sofern es sich um eine dialogfeldbasierende Anwendung handelt.</p>
<p>Im Gegenzug kannst Du auch gerne einmal eine blanke dialogfeldbasierende Anwendung erstellen. Mit dem Klassenassistenten die Methode &quot;InitApplication&quot; hinzufügen und den oben geposteten Code einfügen. Dann das ganz kompilieren und mit zB Spy++ nach der Anwendung suchen und Dir den Klassennamen anzeigen lassen. Dann wirst Du sehen, daß es sich um eine Zahlenkombi handelt und nicht um den von Dir gewählten Klassennamen. Dann fügst Du die Zeile 'CLASS &quot;Klassenname&quot;' in die RC-Datei ein und schwups hat es funktioniert.</p>
<p>Bei einer SDI/MDI geht es einfacher.</p>
<p>Das es so geht, daß steht ausser Frage und zusätzlicher Code ist es wohl auch weniger.</p>
<p>Anders geht es bei einer dialogfeldbasierenden Anwendung nicht nach meinem Wissen und ich meine den Tip von Codeguru gehabt zu haben. Für Aufklärung bzw. eine leichtere Lösung wäre ich jedoch dankbar.</p>
<p>MfG<br />
Frenzy</p>
]]></description><link>https://www.c-plusplus.net/forum/post/28707</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/28707</guid><dc:creator><![CDATA[Frenzy]]></dc:creator><pubDate>Mon, 26 May 2003 12:49:00 GMT</pubDate></item><item><title><![CDATA[Reply to RegisterClass bei dialogfeldbasierenden Anwendungen on Mon, 26 May 2003 14:53:00 GMT]]></title><description><![CDATA[<ol>
<li></li>
</ol>
<p>Du musst schon dazu schreiben, dass Du Deine EIGENE Fensterklasse registrieren willst!<br />
2.<br />
Naja, die MFC-Entwickler werden schon wissen, weshalb sie das Ganze versteckt haben, denn es wird nicht häufig gebraucht. Ich persönlich habs noch nie gebraucht.<br />
3.<br />
Die RC-Datei zu editieren ist ja nicht schwer, oder? Also bleib doch bei dieser Lösung!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/28708</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/28708</guid><dc:creator><![CDATA[RenéG]]></dc:creator><pubDate>Mon, 26 May 2003 14:53:00 GMT</pubDate></item><item><title><![CDATA[Reply to RegisterClass bei dialogfeldbasierenden Anwendungen on Tue, 27 May 2003 07:16:00 GMT]]></title><description><![CDATA[<p>hehe..</p>
<p>Ich dachte das sei klar, daß ich das machen will.</p>
<p>Na dann ist ja nun alles klar. Schwer ist es sicherlich nicht, jedoch hatte ich gehofft, daß es einen Automatismus gibt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/28709</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/28709</guid><dc:creator><![CDATA[Frenzy]]></dc:creator><pubDate>Tue, 27 May 2003 07:16:00 GMT</pubDate></item></channel></rss>