<?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[Auf Buttonklick neue Editbox erstellen -&amp;gt; geht nicht]]></title><description><![CDATA[<p>Hallöchen.</p>
<p>Muss ich eine CreateWindowEx-Funktion immer bei WM_CREATE hinschreiben?<br />
Will nämlich, dass sich bei einem Buttonklick immer mehr Editboxen erstellen lassen, nach folgendem Beispiel:</p>
<pre><code class="language-cpp">case WM_COMMAND:
            if(lParam==(LPARAM)hButtonPlus){
                if(HIWORD(wParam) == BN_CLICKED){
                    n++;
                    sum[n].hEdit = CreateWindowEx(WS_EX_CLIENTEDGE, &quot;Edit&quot;, sum[n].buffer,
                                             WS_CHILD | WS_VISIBLE, 20+n*50, 30, 30, 30,
                                             hwnd, NULL, 
                                             ((LPCREATESTRUCT) lParam) -&gt; hInstance,
                                             NULL);   
                }            
            }                
            break;
</code></pre>
<p>Das Programm stürzt aber jedesmal ab, wenn ich dann auch auf den Button klicke.</p>
<p>Ach ja: sum[] ist ein Array einer Klasse, die den char buffer[255] und die HWND hEdit beinhaltet.</p>
<p>Hab ich da einen Fehler gemacht?</p>
<p>Vielen Danke für jede Hilfe.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/149450/auf-buttonklick-neue-editbox-erstellen-gt-geht-nicht</link><generator>RSS for Node</generator><lastBuildDate>Sun, 19 Jul 2026 17:35:19 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/149450.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 06 Jun 2006 09:10:17 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Auf Buttonklick neue Editbox erstellen -&amp;gt; geht nicht on Tue, 06 Jun 2006 09:10:17 GMT]]></title><description><![CDATA[<p>Hallöchen.</p>
<p>Muss ich eine CreateWindowEx-Funktion immer bei WM_CREATE hinschreiben?<br />
Will nämlich, dass sich bei einem Buttonklick immer mehr Editboxen erstellen lassen, nach folgendem Beispiel:</p>
<pre><code class="language-cpp">case WM_COMMAND:
            if(lParam==(LPARAM)hButtonPlus){
                if(HIWORD(wParam) == BN_CLICKED){
                    n++;
                    sum[n].hEdit = CreateWindowEx(WS_EX_CLIENTEDGE, &quot;Edit&quot;, sum[n].buffer,
                                             WS_CHILD | WS_VISIBLE, 20+n*50, 30, 30, 30,
                                             hwnd, NULL, 
                                             ((LPCREATESTRUCT) lParam) -&gt; hInstance,
                                             NULL);   
                }            
            }                
            break;
</code></pre>
<p>Das Programm stürzt aber jedesmal ab, wenn ich dann auch auf den Button klicke.</p>
<p>Ach ja: sum[] ist ein Array einer Klasse, die den char buffer[255] und die HWND hEdit beinhaltet.</p>
<p>Hab ich da einen Fehler gemacht?</p>
<p>Vielen Danke für jede Hilfe.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1072261</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1072261</guid><dc:creator><![CDATA[Max3000]]></dc:creator><pubDate>Tue, 06 Jun 2006 09:10:17 GMT</pubDate></item><item><title><![CDATA[Reply to Auf Buttonklick neue Editbox erstellen -&amp;gt; geht nicht on Tue, 06 Jun 2006 09:36:48 GMT]]></title><description><![CDATA[<p>debuggen...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1072292</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1072292</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Tue, 06 Jun 2006 09:36:48 GMT</pubDate></item><item><title><![CDATA[Reply to Auf Buttonklick neue Editbox erstellen -&amp;gt; geht nicht on Tue, 06 Jun 2006 09:40:14 GMT]]></title><description><![CDATA[<p>Da sagt er mir, dass eine Zugriffsverletzung im Programm aufgetreten ist. Es liegt an der einen Zeile sum[n]=...</p>
<p>Davor hab ich ja auf die selbe Weise sum[0] erstellt und das funktioniert.<br />
Das steht aber unter WM_CREATE.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1072293</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1072293</guid><dc:creator><![CDATA[Max3000]]></dc:creator><pubDate>Tue, 06 Jun 2006 09:40:14 GMT</pubDate></item><item><title><![CDATA[Reply to Auf Buttonklick neue Editbox erstellen -&amp;gt; geht nicht on Tue, 06 Jun 2006 09:44:51 GMT]]></title><description><![CDATA[<p>tjo das Problem wird darin liegen, das dein sum nicht groß genug ist <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /> DU musst ihn eigentlich jedesmal vergrößern wenn de ++n; aufrufst...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1072299</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1072299</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Tue, 06 Jun 2006 09:44:51 GMT</pubDate></item><item><title><![CDATA[Reply to Auf Buttonklick neue Editbox erstellen -&amp;gt; geht nicht on Tue, 06 Jun 2006 14:00:59 GMT]]></title><description><![CDATA[<p>der LPCREATESTRUCT lparam cast..das geid ned in WM_COMMAND, das geht nur in WM_CREATE</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1072546</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1072546</guid><dc:creator><![CDATA[bullie]]></dc:creator><pubDate>Tue, 06 Jun 2006 14:00:59 GMT</pubDate></item><item><title><![CDATA[Reply to Auf Buttonklick neue Editbox erstellen -&amp;gt; geht nicht on Tue, 06 Jun 2006 14:23:23 GMT]]></title><description><![CDATA[<p>Und wie genau mach ich das?<br />
Kann man das nicht mit Malloc machen? aber irgendwie verlangt der da von mir ein void oder sowas.</p>
<p>Und wie kann ich dann die Box ohne LPCREATESTRUCT erstellen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1072561</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1072561</guid><dc:creator><![CDATA[Max3000]]></dc:creator><pubDate>Tue, 06 Jun 2006 14:23:23 GMT</pubDate></item><item><title><![CDATA[Reply to Auf Buttonklick neue Editbox erstellen -&amp;gt; geht nicht on Tue, 06 Jun 2006 16:11:20 GMT]]></title><description><![CDATA[<p>GetModuleHandle(0), der hInstance eine globale Variable machen!?</p>
<p>Ob sum[] groß genug ist oder nicht können wir ja schlecht wissen du zeigst uns ja nicht wie du es definiert hast. Wie dem auch sei wenn es eine feste größe hat solltest du natürlich erstmal überprüfen ob n noch im gültigen bereich liegt bevor du es als index in das array benutzt...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1072642</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1072642</guid><dc:creator><![CDATA[..]]></dc:creator><pubDate>Tue, 06 Jun 2006 16:11:20 GMT</pubDate></item><item><title><![CDATA[Reply to Auf Buttonklick neue Editbox erstellen -&amp;gt; geht nicht on Tue, 06 Jun 2006 19:52:40 GMT]]></title><description><![CDATA[<p>naja... ich geh halt davon aus das er sum ne feste größe gegeben hat ... und das d.h. kommt <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1072785</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1072785</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Tue, 06 Jun 2006 19:52:40 GMT</pubDate></item><item><title><![CDATA[Reply to Auf Buttonklick neue Editbox erstellen -&amp;gt; geht nicht on Wed, 07 Jun 2006 08:27:14 GMT]]></title><description><![CDATA[<p>Sum ist ne Variable der Klasse summand:</p>
<pre><code class="language-cpp">class summand
{
    public:
    int anz;
    char buffer[255];
    int boxwidth;
    int boxhight;
    int ableiten();    
    HWND hEdit;          
};
</code></pre>
<p>Ich habs jetzt mit GetModuleHandle(0) versucht und dadurch lassen sich irgendwie nur 2 neue Boxen erstellen, obwohl ich ja eigentlich 10 deklariert habe.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1072972</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1072972</guid><dc:creator><![CDATA[Max3000]]></dc:creator><pubDate>Wed, 07 Jun 2006 08:27:14 GMT</pubDate></item><item><title><![CDATA[Reply to Auf Buttonklick neue Editbox erstellen -&amp;gt; geht nicht on Sat, 10 Jun 2006 08:12:39 GMT]]></title><description><![CDATA[<p>Hallo.</p>
<p>Das Problem besteht weiterhin.<br />
Ich kann nur eine Box hinzufügen, aber warum nicht mehr?<br />
Es kommt kein Fehler, es passiert einfach nichts, wenn ich ein zweites mal auf den Button klicke.</p>
<p>Hat eventuell jemand eine Idee, woran das liegen könnte.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1074944</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1074944</guid><dc:creator><![CDATA[Max3000]]></dc:creator><pubDate>Sat, 10 Jun 2006 08:12:39 GMT</pubDate></item><item><title><![CDATA[Reply to Auf Buttonklick neue Editbox erstellen -&amp;gt; geht nicht on Sat, 10 Jun 2006 08:38:30 GMT]]></title><description><![CDATA[<p>Max3000 schrieb:</p>
<blockquote>
<p>Sum ist ne Variable der Klasse summand</p>
</blockquote>
<p>Dann zeig doch bitte auch noch, wo du den Speicher für dein summand-Array reservierst und die einzelnen Instanzen erzeugt werden...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1074955</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1074955</guid><dc:creator><![CDATA[flenders]]></dc:creator><pubDate>Sat, 10 Jun 2006 08:38:30 GMT</pubDate></item><item><title><![CDATA[Reply to Auf Buttonklick neue Editbox erstellen -&amp;gt; geht nicht on Sat, 10 Jun 2006 11:43:20 GMT]]></title><description><![CDATA[<p>Speicherreservierung hab ich so gemacht:</p>
<pre><code class="language-cpp">void *ptr;

    ptr=&amp;sum;
    ptr=malloc(100);
</code></pre>
<p>(ich hoffe das ist nicht totaler Schwachsinn).</p>
<p>Von Instanzen hab ich ehrlich gesagt noch nie was gehört.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1075045</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1075045</guid><dc:creator><![CDATA[Max3000]]></dc:creator><pubDate>Sat, 10 Jun 2006 11:43:20 GMT</pubDate></item><item><title><![CDATA[Reply to Auf Buttonklick neue Editbox erstellen -&amp;gt; geht nicht on Sat, 10 Jun 2006 11:49:13 GMT]]></title><description><![CDATA[<p>das ist aber <strong>totaler</strong> quatsch</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1075049</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1075049</guid><dc:creator><![CDATA[hm...]]></dc:creator><pubDate>Sat, 10 Jun 2006 11:49:13 GMT</pubDate></item><item><title><![CDATA[Reply to Auf Buttonklick neue Editbox erstellen -&amp;gt; geht nicht on Sat, 10 Jun 2006 11:51:24 GMT]]></title><description><![CDATA[<p>loooooooooooooooool</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1075050</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1075050</guid><dc:creator><![CDATA[LOL!]]></dc:creator><pubDate>Sat, 10 Jun 2006 11:51:24 GMT</pubDate></item><item><title><![CDATA[Reply to Auf Buttonklick neue Editbox erstellen -&amp;gt; geht nicht on Sat, 10 Jun 2006 11:54:02 GMT]]></title><description><![CDATA[<p>Wie dann???</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1075052</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1075052</guid><dc:creator><![CDATA[Max3000]]></dc:creator><pubDate>Sat, 10 Jun 2006 11:54:02 GMT</pubDate></item><item><title><![CDATA[Reply to Auf Buttonklick neue Editbox erstellen -&amp;gt; geht nicht on Sat, 10 Jun 2006 12:12:41 GMT]]></title><description><![CDATA[<p>Tja.. ich würde da ne Funktion schreiben... die dir den Array immer etwas vergrößert... sonnst bekommst de Probs <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>Aja...</p>
<pre><code class="language-cpp">class CSummand
{
protected:
    int m_nCount;
    char m_cBuffer[255];
    int m_nBoxWidth;
    int m_nBoxHight;
    HWND m_hEdit;

public:
    int Ableiten(void);
    bool CreateWindow(...); // Public ist in dem Fall zwar notfalls ok... weils sonnst umständlich ist... aber normal sollte man das net amchen ;)  Also immer schön Funktionen dafür schreiben :)             
};
</code></pre>
<p>Hmm mach das am einfachsten mit nem Pointer <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /> da gehts leicht...</p>
<p>[edit]So... hier mal wie de es machen kannst <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /> [/edit]</p>
<pre><code class="language-cpp">CSummand* m_pSum // Das auch!;
UINT m_nSumCount; // Muss im Konstruktor auf 0 gesetzte werden!
</code></pre>
<p>Dann kannst de dir ne AddSummand Funktion schreiben... die dann in etwa so aussieht wie diese:</p>
<pre><code class="language-cpp">void AddSummand(....)
{
	CSummand* pTmp = NULL;

	if(m_pSum)
	{
		pTmp = new CSummand[m_nSumCount];
		memcpy(pTmp, m_pSum, sizeof(CSummand) * m_nSumCount);
	}

	delete [] m_pSum;
	m_pSum = new CSummand[m_nSumCount + 1];

	if(pTmp)
		memcpy(m_pSum, pTmp, sizeof(CSummand) * m_nSumCount);

	delete [] pTmp;

	// Hier jetzt bsw. m_pSum[m_nSumCount].CreateWindow(...) oder auch einfach m_pSum[m_nSumCount].hEdit = CreateWindow(...) ... kommt halt drauf an wie de deine Klasse jetzt machst...

	++m_nSumCount;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1075054</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1075054</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Sat, 10 Jun 2006 12:12:41 GMT</pubDate></item><item><title><![CDATA[Reply to Auf Buttonklick neue Editbox erstellen -&amp;gt; geht nicht on Sat, 10 Jun 2006 13:26:01 GMT]]></title><description><![CDATA[<p>Danke für die Hilfe, aber ich seh trotzdem nicht ganz durch.<br />
Du erstellst also eine temoräre Variable dieser Klasse?</p>
<p>Ich hab das jetzt erstmal so umgeschrieben:</p>
<pre><code class="language-cpp">class summand
{
    private:
        int anz;
        int boxwidth;
        int boxhight;    

    public:
        char buffer[10][255];
        HWND hEdit;          
        int ableiten(); 
        summand(void); 
        int add_sum(HWND);        
};

summand::summand(void){
    anz=0;
    boxwidth=50;
    boxhight=30;
    buffer[0][0]=NULL;
}

int summand::add_sum(HWND hwnd){

    hEdit = CreateWindowEx (WS_EX_CLIENTEDGE, &quot;Edit&quot;, buffer[anz],
                            WS_CHILD | WS_VISIBLE, 20+50*anz, 30, boxwidth, boxhight,
                            hwnd, NULL, 
                            GetModuleHandle(0),
                            NULL);

    anz++; 
    return 0; 
}
</code></pre>
<p>Aber wie kann ich jetzt in dieser add_sum-Funktion die Speicherreservierung festlegen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1075111</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1075111</guid><dc:creator><![CDATA[Max3000]]></dc:creator><pubDate>Sat, 10 Jun 2006 13:26:01 GMT</pubDate></item><item><title><![CDATA[Reply to Auf Buttonklick neue Editbox erstellen -&amp;gt; geht nicht on Sat, 10 Jun 2006 13:37:59 GMT]]></title><description><![CDATA[<p>Arg... nein... Ich dachte du hättest einen Array von CSummand angelegt... oder?</p>
<p>Also... in der AddSummand funktion die ich gepostet hab... 1. ne temporäre Variable anlege... den inhalt von m_pSum reinkopieren... dann m_pSum um eins vergrößern.... wieder zurück kopieren... tjo... dann noch den neuen entry ausfüllen... das wärs <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>Du willst doch einen Array von CSummand? Oder willst du innerhalb von CSummand einen Edit Array... ?!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1075122</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1075122</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Sat, 10 Jun 2006 13:37:59 GMT</pubDate></item><item><title><![CDATA[Reply to Auf Buttonklick neue Editbox erstellen -&amp;gt; geht nicht on Sat, 10 Jun 2006 14:34:01 GMT]]></title><description><![CDATA[<p>Mir ists eigentlich egal, auf welche Weise.<br />
nagut ich werds nochmal so versuchen.</p>
<p>Danke für die Hilfe.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1075154</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1075154</guid><dc:creator><![CDATA[Max3000]]></dc:creator><pubDate>Sat, 10 Jun 2006 14:34:01 GMT</pubDate></item><item><title><![CDATA[Reply to Auf Buttonklick neue Editbox erstellen -&amp;gt; geht nicht on Sat, 10 Jun 2006 15:06:59 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">class summand
{
public:
    summand(void); 
    ~summand(void);
protected:
    struct SumEdit_t
    {
        int nWidth;
        int nHeight;
        char cBuffer[256];
        ::HWND hWnd;
    } * m_pEdits;
    UINT m_nEditCount;

public:
    int ableiten(void); 
    int AddSum(::HWND /*hWndParent*/, int /*nWidth*/, int /*nHeight*/, LPCSTR /*lpszBuffer*/);        
};

summand::summand(void) : m_nEditCount(0), m_pEdits(0)
{
}

int summand::AddSum(::HWND hWndParent, int nWidth, int nHeight, LPCSTR lpszBuffer)
{
    SumEdit_t* pTmp = NULL;

    if(m_pEdits)
    {
        pTmp = new SumEdit_t[m_nEditCount];
        memcpy(pTmp, m_pEdits, sizeof(SumEdit_t) * m_nEditCount);
    }

    delete [] m_pSum;
    m_pEdits = new SumEdit_t[m_nEditCount + 1];

    if(pTmp)
        memcpy(m_pEdits, pTmp, sizeof(SumEdit_t) * m_nEditCount);

    delete [] pTmp;

    m_pEdits[m_nEditCount].nWidth = nWidth;
    m_pEdits[m_nEditCount].nHeight = nHeight;
    _snprintf(m_pEdits[m_nEditCount].cBuffer, 256, &quot;%s&quot;, lpszBuffer);
    m_pEdits[m_nEditCount].hWnd = CreateWindowEx(WS_EX_CLIENTEDGE, &quot;Edit&quot;,  lpszBuffer, WS_CHILD | WS_VISIBLE, 20+50 * m_nEditCount, 30, nWidth, nHeight, hWndParent, NULL, GetModuleHandle(0), NULL);

    ++m_nSumCount;

    return m_nSumCount-1; 
}
</code></pre>
<p>Du musst nur noch nen Destruktor basteln... delete [] m_pEdits usw <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>Aja.. ist jetzt ja ganz einfach aufzurufen... du musst einfach nen object von summand erzeugen und kannst dann mit AddSum so viele Edits hinzufügen wie de willst <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>PS: Keine Garantie das es funktioniert... hab das gerade einfach hier in das &quot;Nachrichten schreiben&quot;-Feld getippt... also nicht getestet nix <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1075171</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1075171</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Sat, 10 Jun 2006 15:06:59 GMT</pubDate></item><item><title><![CDATA[Reply to Auf Buttonklick neue Editbox erstellen -&amp;gt; geht nicht on Sun, 11 Jun 2006 08:21:51 GMT]]></title><description><![CDATA[<p>Ich bins nochmal. Ich hab das jetzt fast genauso übernommen (außer diesen struct-Block und die Variablennamen), und ich kann trotzdem nur eine Editbox erstellen. Bei einer zweiten passiert gar nix. ICh schicke jetzt am besten mal meinen gesamten Code:</p>
<pre><code class="language-cpp">#define STRICT

#include &lt;windows.h&gt;

/*  Declare Windows procedure  */
LRESULT CALLBACK WindowProcedure (HWND, UINT, WPARAM, LPARAM);

/*  Make the class name into a global variable  */
char szClassName[ ] = &quot;WindowsApp&quot;;

class summand
{
    protected:
        UINT anz;
        int boxwidth;
        int boxhight;    
        HWND hEdit;
        char buffer[255];        
    public:   
        int ableiten(); 
        summand(void); 
        int add_sum(HWND, int);        
};

summand::summand(void){
    boxwidth=50;
    boxhight=30;
    buffer[0]=' ';
}

int summand::add_sum(HWND hwnd, int a){      

    hEdit = CreateWindowEx (WS_EX_CLIENTEDGE, &quot;Edit&quot;, buffer,
                            WS_CHILD | WS_VISIBLE, 20+100*a, 30, boxwidth, boxhight,
                            hwnd, NULL, 
                            GetModuleHandle(0),
                            NULL);

    return a; 
}

int WINAPI WinMain (HINSTANCE hThisInstance,
                    HINSTANCE hPrevInstance,
                    LPSTR lpszArgument,
                    int nFunsterStil)

{
//...Hier steht der Standardcode, wie bei jeder Windows-Anwendung.
}

/*  This function is called by the Windows function DispatchMessage()  */

LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    int n=0,i;
    static HWND hButtonPlus, hButtonMinus;
    summand* sum;
    summand* tmp=NULL;

    switch (message)                  /* handle the messages */
    {
        case WM_CREATE:
            hButtonPlus = CreateWindow (&quot;button&quot;, &quot;+&quot;, WS_CHILD | WS_VISIBLE,
                                        50, 100, 20, 20, hwnd, NULL, 
                                        ((LPCREATESTRUCT) lParam) -&gt;hInstance,
                                        NULL);
            hButtonMinus = CreateWindow (&quot;button&quot;, &quot;-&quot;, WS_CHILD | WS_VISIBLE,
                                        70, 100, 20, 20, hwnd, NULL, 
                                        ((LPCREATESTRUCT) lParam) -&gt;hInstance,
                                        NULL);
            /*sum[0].hEdit = CreateWindowEx (WS_EX_CLIENTEDGE, &quot;Edit&quot;, sum[0].buffer,
                                           WS_CHILD | WS_VISIBLE, 20, 30, 30, 30,
                                           hwnd, NULL, 
                                           GetModuleHandle(0),
                                           NULL);*/

            break;
        case WM_COMMAND:
            if(lParam==(LPARAM)hButtonPlus){
                if(HIWORD(wParam) == BN_CLICKED){

                    if(sum){
                        tmp = new summand[n];
                        memcpy (tmp, sum, sizeof(summand) * n); 
                    }    
                    delete [] sum;  
                    sum = new summand[n+1];
                    if(tmp)
                        memcpy (sum, tmp, sizeof(summand) * n);
                    delete [] tmp;                 

                    sum[n].add_sum(hwnd, n);
                    n++;
                }            
            }                
            break;
        case WM_DESTROY:
            PostQuitMessage (0);       /* send a WM_QUIT to the message queue */
            break;
        default:                      /* for messages that we don't deal with */
            return DefWindowProc (hwnd, message, wParam, lParam);
    }

    return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1075402</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1075402</guid><dc:creator><![CDATA[Max3000]]></dc:creator><pubDate>Sun, 11 Jun 2006 08:21:51 GMT</pubDate></item><item><title><![CDATA[Reply to Auf Buttonklick neue Editbox erstellen -&amp;gt; geht nicht on Sun, 11 Jun 2006 08:22:50 GMT]]></title><description><![CDATA[<p>Was willste überhaupt machen Max3000. Bei jedem Click ein neues Edit Fenster erstellen? Wozu soll das gut sein? Brauchst du wirklich 10.000 Fenszer? Ich würde einfach ein array mit 16, 32 oder wieviel du ca. brauchst machen. hier mein freund das ist doch viel einfacher und wird den zweck sicherlich auch erfüllen</p>
<pre><code class="language-cpp">#define MAX_SUM	32
...
...
	summand sum[MAX_SUM];
...
...
        case WM_COMMAND:
            if(lParam==(LPARAM)hButtonPlus){
                if(HIWORD(wParam) == BN_CLICKED){
					if( n &lt; MAX_SUM )
					{
	                    sum[n].hEdit = CreateWindowEx(WS_EX_CLIENTEDGE, &quot;Edit&quot;, sum[n].buffer,
				                                      WS_CHILD | WS_VISIBLE, 20+n*50, 30, 30, 30,
					                                  hwnd, NULL,
							                          ((LPCREATESTRUCT) lParam) -&gt; hInstance,
									                  NULL);
						n++;
					}
                }            
            }                
            break;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1075403</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1075403</guid><dc:creator><![CDATA[freund..]]></dc:creator><pubDate>Sun, 11 Jun 2006 08:22:50 GMT</pubDate></item><item><title><![CDATA[Reply to Auf Buttonklick neue Editbox erstellen -&amp;gt; geht nicht on Sun, 11 Jun 2006 08:36:53 GMT]]></title><description><![CDATA[<p>Das geht bei mir aber genausowenig.<br />
Aber hast recht, ich brauch keine 10000 Fenster, sondern maximal so 20.<br />
So langsam glaube ich aber der Fehler liegt gar nicht an der Klasse und der Speicherreservierung.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1075416</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1075416</guid><dc:creator><![CDATA[Max3000]]></dc:creator><pubDate>Sun, 11 Jun 2006 08:36:53 GMT</pubDate></item><item><title><![CDATA[Reply to Auf Buttonklick neue Editbox erstellen -&amp;gt; geht nicht on Sun, 11 Jun 2006 09:13:42 GMT]]></title><description><![CDATA[<p>Hoi,<br />
wenn ich mal indirekt zitieren darf...:</p>
<pre><code class="language-cpp">int summand::add_sum(HWND hwnd, int a){      

    hEdit = CreateWindowEx (WS_EX_CLIENTEDGE, &quot;Edit&quot;, buffer,
                            WS_CHILD | WS_VISIBLE, 20+100*a, 30, boxwidth, boxhight,
                            hwnd, NULL,
                            GetModuleHandle(0),
                            NULL);

    return a;
}
</code></pre>
<p>du gibst deinen Button doch gar keine ID... da steht ja NULL <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /><br />
Bin mir nicht ganz sicher ob das der Fehler ist, aber du kannst ja auch mal GetLastError benutzen, um den Fehler genauer zu spezifizieren <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f4a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--light_bulb"
      title=":bulb:"
      alt="💡"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1075442</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1075442</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Sun, 11 Jun 2006 09:13:42 GMT</pubDate></item><item><title><![CDATA[Reply to Auf Buttonklick neue Editbox erstellen -&amp;gt; geht nicht on Sun, 11 Jun 2006 11:30:47 GMT]]></title><description><![CDATA[<p>Hab den Fehler jetzt eingegrenzt.<br />
Die Funktion add_sum läuft jedesmal durch und ich habe auch immer eine andere Adresse von hEdit.</p>
<p>Das Problem ist der Index, den ich n genannt habe. Der bleibt immer gleich, obwohl ich den bei jedem Buttonklick hochzählen lasse.</p>
<p>Desswegen erstellt der die neue Editbox immer mit den selben Koordinaten, also sind diese Deckungsgleich und ich kann die dann nicht mehr unterscheiden.</p>
<p>Aber warum zählt der das n nicht hoch?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1075524</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1075524</guid><dc:creator><![CDATA[Max3000]]></dc:creator><pubDate>Sun, 11 Jun 2006 11:30:47 GMT</pubDate></item><item><title><![CDATA[Reply to Auf Buttonklick neue Editbox erstellen -&amp;gt; geht nicht on Sun, 11 Jun 2006 11:46:07 GMT]]></title><description><![CDATA[<p>Weil n nicht static ist. Also ich würde erstmal C oder C++ lernen, das ist nicht als Angriff gemeint aber dir würden die Dinge alle einfach WEITAUS klarer sein, wenn du wüsstest was du uberhaupt machst....Der Code ist ein misch aus C und C++ und obendrein verkompliziert WinAPI die Sache...wenn man noch nichts davon richtig beherscht dann gibt das nur Schlamassel...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1075542</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1075542</guid><dc:creator><![CDATA[Meaning]]></dc:creator><pubDate>Sun, 11 Jun 2006 11:46:07 GMT</pubDate></item></channel></rss>