<?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[GUI-Eigenschaften in einer Datei ablegen.]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich kämpfe mich seit Tagen durch das Web um eine Lösung für mein Problem zu finden, doch leider ohne Erfolg!</p>
<p>Ich arbeite mit VC2005_Prof an einem SDI-Projekt mit Splitter-Windows (mit CFormView als View-Basisklasse).<br />
Nun möchte ich in der linken View (CLeftView) Schaltflächen (Buttons) erstellen, deren Eigenschaften (Name und Position) in einer txt-Datei abgelegt sind.</p>
<p>--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------<br />
Mit einer Konsolenanwendung kann ich das Dokument problemlos parsen und auf die Attributen zugriefen, indem ich zuerst eine Klasse mit den Schaltflächen-Eigenschaften erstellt habe und anschließend einen std::vector mit den Daten gefüllt habe.<br />
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</p>
<p>Jetzt zurück zur MFC:<br />
Wie kann ich dann diese Ideen mit der &quot;Klasse&quot; und dem &quot;std::vector&quot; in der MFC-Programmierung umsetzen?<br />
Meine Überlegung ist, eine Klasse mit den Schaltflächen-Eigenschaften von CButton abzuleiten, aber ich weiß leider nicht, was noch alles im Konstruktor definiert werden soll ...?</p>
<pre><code class="language-cpp">// CMyBtn.h
class CMyBtn : public CButton
{	
  protected: 
       CMyBtn();
       string name; int nID; int Xpos; int Ypos; int breite; int höhe;
 protected:
       CWnd* eltern_f;
 public:
       virtual ~CMyBtn();
 protected:	
       afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
};
</code></pre>
<p>Stimmt das mit dem Zeiger auf das Elternfenster?</p>
<p>Kann ich den std::vector der Klasse CMyBtn einfach in der CMyBtn.h defineiern?</p>
<pre><code class="language-cpp">class CMyBtnVector : public vector&lt;CMyBtn&gt;
</code></pre>
<p>Für euere Hilfe wäre ich sehr dankbar.<br />
Gruß, Xander</p>
<p>.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/163952/gui-eigenschaften-in-einer-datei-ablegen</link><generator>RSS for Node</generator><lastBuildDate>Fri, 31 Jul 2026 01:30:50 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/163952.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 03 Nov 2006 12:19:58 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to GUI-Eigenschaften in einer Datei ablegen. on Fri, 03 Nov 2006 12:19:58 GMT]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich kämpfe mich seit Tagen durch das Web um eine Lösung für mein Problem zu finden, doch leider ohne Erfolg!</p>
<p>Ich arbeite mit VC2005_Prof an einem SDI-Projekt mit Splitter-Windows (mit CFormView als View-Basisklasse).<br />
Nun möchte ich in der linken View (CLeftView) Schaltflächen (Buttons) erstellen, deren Eigenschaften (Name und Position) in einer txt-Datei abgelegt sind.</p>
<p>--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------<br />
Mit einer Konsolenanwendung kann ich das Dokument problemlos parsen und auf die Attributen zugriefen, indem ich zuerst eine Klasse mit den Schaltflächen-Eigenschaften erstellt habe und anschließend einen std::vector mit den Daten gefüllt habe.<br />
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</p>
<p>Jetzt zurück zur MFC:<br />
Wie kann ich dann diese Ideen mit der &quot;Klasse&quot; und dem &quot;std::vector&quot; in der MFC-Programmierung umsetzen?<br />
Meine Überlegung ist, eine Klasse mit den Schaltflächen-Eigenschaften von CButton abzuleiten, aber ich weiß leider nicht, was noch alles im Konstruktor definiert werden soll ...?</p>
<pre><code class="language-cpp">// CMyBtn.h
class CMyBtn : public CButton
{	
  protected: 
       CMyBtn();
       string name; int nID; int Xpos; int Ypos; int breite; int höhe;
 protected:
       CWnd* eltern_f;
 public:
       virtual ~CMyBtn();
 protected:	
       afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
};
</code></pre>
<p>Stimmt das mit dem Zeiger auf das Elternfenster?</p>
<p>Kann ich den std::vector der Klasse CMyBtn einfach in der CMyBtn.h defineiern?</p>
<pre><code class="language-cpp">class CMyBtnVector : public vector&lt;CMyBtn&gt;
</code></pre>
<p>Für euere Hilfe wäre ich sehr dankbar.<br />
Gruß, Xander</p>
<p>.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1167634</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1167634</guid><dc:creator><![CDATA[Xander]]></dc:creator><pubDate>Fri, 03 Nov 2006 12:19:58 GMT</pubDate></item><item><title><![CDATA[Reply to GUI-Eigenschaften in einer Datei ablegen. on Fri, 03 Nov 2006 12:29:56 GMT]]></title><description><![CDATA[<p>Xander schrieb:</p>
<blockquote>
<p>Stimmt das mit dem Zeiger auf das Elternfenster?</p>
</blockquote>
<p>Einen Zeiger auf das Elternfenster hat CButton schon selber - den brauchst du nicht extra anzulegen. Und zum Erzeugen des Buttons solltest du besser CButton::Create() überschreiben und dort die Methode der Basisklasse aufrufen (die nötigen Parameter mußt du dir selber zusammenstellen - z.B. aus Xpos, YPos, breite und hoehe ein CRect für die Positionsangabe).</p>
<blockquote>
<p>Kann ich den std::vector der Klasse CMyBtn einfach in der CMyBtn.h defineiern?</p>
<pre><code class="language-cpp">class CMyBtnVector : public vector&lt;CMyBtn&gt;
</code></pre>
</blockquote>
<p>Von STL-Klassen abzuleiten ist generell keine gute Idee. Aber du kannst in deiner Dialog-Klasse einen vector&lt;CMyBtn&gt; unterbringen, füllen und die Buttons am Ende in einer Schleife erzeugen (oder eleganter per for_each()).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1167642</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1167642</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Fri, 03 Nov 2006 12:29:56 GMT</pubDate></item><item><title><![CDATA[Reply to GUI-Eigenschaften in einer Datei ablegen. on Fri, 03 Nov 2006 15:59:24 GMT]]></title><description><![CDATA[<p>Hallo und danke erstmal für die schnelle Antwort.</p>
<p>Wie schaut dann die Methode der &quot;Basisklasse&quot; aus, um Buttons zu erzeugen?<br />
Ich kann Deine Ausgae folgender Maßen interpretieren:</p>
<pre><code class="language-cpp">// CMyBtn.h
class CMyBtn : public CButton
{  ...  
   protected:
        // afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); überschreiben
   public: 
       CMyBtn(string name, int nID, int Xpos, int Ypos, int breite, int höhe);
   ...
}
</code></pre>
<pre><code class="language-cpp">// CMyBtn.cpp 
CMyBtn::CMyBtn(string name, int nID, int Xpos, int Ypos, int breite, int höhe)
{
  vector&lt;CMyBtn&gt; List;
  for ( vector&lt;CMyBtn&gt;::size_type i = 0, j = List.size( ); i &lt; j; ++i )
  {
   CRect rect(List[i].Xpos, List[i].Ypos, List[i].Xpos + List[i].breite, List[i].Ypos + List[i].höhe);

   Button.Create(List[i].name, WS_CHILD|WS_VISIBLE, rect, _LeftView, IDi++);
  }
}
</code></pre>
<p>beim Punkt &quot;_LeftView&quot;, brauche ich einen Zeiger auf der linken View (CLeftView), wo die Buttons angezeigt werden soll... wie mache ich das?<br />
Das mit dem IDi muss ich irgendwie mit einer Start_ID lösen, die sich jedes mal inkrementiert.</p>
<p>Mir geht's momentan in ertser Linie, nur darum, die Buttons anzuzeigen.<br />
Mit den Zeigern auf Funktionen, die beim Anklicken auf ein Button aufgerufen werden, will ich mich erst später beschäftigen.<br />
Danke.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1167804</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1167804</guid><dc:creator><![CDATA[Xander]]></dc:creator><pubDate>Fri, 03 Nov 2006 15:59:24 GMT</pubDate></item></channel></rss>