<?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[Auweia: Memberzugriff mit Zeiger]]></title><description><![CDATA[<p>Hi,</p>
<p>ich denke ich stehe neben mir und habe heute den größten Bockmist des Jahrhunderts programmiert.</p>
<p>Da ich mich noch in der MFC C++ Rookie-Phase befinde, frage ich mal nach!!!</p>
<p>Also ich baue eine Dialogbasierte Anwendung d.h. Ableitung von CWinApp und CDialog.</p>
<pre><code>class CXXLDlg : public CDialog
</code></pre>
<p>habe ic eine Membervariable um diese öffentlich bekannt zu machen und so auf z.B. eine Listbox auch in<br />
Events zuzugreifen, also z.B. in</p>
<pre><code>void CXXLDlg::OnSelchangeList1()
</code></pre>
<p>und deshalb (und jetzt kommt's) in</p>
<pre><code>BOOL CXXLDlg::OnInitDialog()
</code></pre>
<p>folgendes gemacht!!!</p>
<pre><code>CListBox* pCListBox = (CListBox*) GetDlgItem(IDC_LIST1);	;
    pCListBox=&amp;m_ListOfficeProg;
</code></pre>
<p>mich schaudert's, aber ich kann's nicht besser. Darum will ich mal fragen wie's besser geht!</p>
<p>Gruß<br />
Franky</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/206126/auweia-memberzugriff-mit-zeiger</link><generator>RSS for Node</generator><lastBuildDate>Fri, 03 Apr 2026 18:51:22 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/206126.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 21 Feb 2008 14:21:36 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Auweia: Memberzugriff mit Zeiger on Thu, 21 Feb 2008 14:21:36 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>ich denke ich stehe neben mir und habe heute den größten Bockmist des Jahrhunderts programmiert.</p>
<p>Da ich mich noch in der MFC C++ Rookie-Phase befinde, frage ich mal nach!!!</p>
<p>Also ich baue eine Dialogbasierte Anwendung d.h. Ableitung von CWinApp und CDialog.</p>
<pre><code>class CXXLDlg : public CDialog
</code></pre>
<p>habe ic eine Membervariable um diese öffentlich bekannt zu machen und so auf z.B. eine Listbox auch in<br />
Events zuzugreifen, also z.B. in</p>
<pre><code>void CXXLDlg::OnSelchangeList1()
</code></pre>
<p>und deshalb (und jetzt kommt's) in</p>
<pre><code>BOOL CXXLDlg::OnInitDialog()
</code></pre>
<p>folgendes gemacht!!!</p>
<pre><code>CListBox* pCListBox = (CListBox*) GetDlgItem(IDC_LIST1);	;
    pCListBox=&amp;m_ListOfficeProg;
</code></pre>
<p>mich schaudert's, aber ich kann's nicht besser. Darum will ich mal fragen wie's besser geht!</p>
<p>Gruß<br />
Franky</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1460249</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1460249</guid><dc:creator><![CDATA[FrankTheFox]]></dc:creator><pubDate>Thu, 21 Feb 2008 14:21:36 GMT</pubDate></item><item><title><![CDATA[Reply to Auweia: Memberzugriff mit Zeiger on Thu, 21 Feb 2008 16:29:28 GMT]]></title><description><![CDATA[<p>Das ist in der Tat etwas unerklärlich was du da machst. Wie hast du denn die Membervariable angelegt?<br />
Einfach so einen Member vom Typ CListBox anzulegen bringt dich nicht weiter, da diese nicht mit dem Steuerelement verknüpft ist. Wenn du deinen Dialog im Ressourceneditor entworfen hast, dann kannst du da mit einem Rechtsklick auf das entsprechenende Element dann im erscheinenden Kontexmenü über den Eintrag &quot;Variable hinzufügen&quot; eine Membervariable erstellen, die dann schon mit dem Dialogelement verknüpft ist. Dann greifst du in der entsprechenden Klasse einfach über den Punktoperator (ich glaube der heißt so) zu. Das ist ja der Sinn einer Membervariablen.<br />
Oder du machst das mit dem Zeiger:</p>
<pre><code class="language-cpp">CListBox* pCListBox = (CListBox*) GetDlgItem(IDC_LIST1); //reicht zum initialisieren
pListBox-&gt;...      //so erfolgt dann der Zugriff
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1460364</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1460364</guid><dc:creator><![CDATA[AndyDD]]></dc:creator><pubDate>Thu, 21 Feb 2008 16:29:28 GMT</pubDate></item><item><title><![CDATA[Reply to Auweia: Memberzugriff mit Zeiger on Thu, 21 Feb 2008 22:25:35 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>ich hatte eine Membervariable angelegt, diese ist vom Typ CString.<br />
Ich möchte aber ein Variable mit der ich auf die Klasse CListbox zugreife, z.B.<br />
in den Ereignissen. So habe ich dann vollen Zugriff auf die Listbox.</p>
<p>Ich weiß das man Zeiger auf Klassen setzten kann, aber ich bin mir nicht sicher,<br />
ob ich damit hier richtig liege. Da ich die Klassevariable ja &quot;global&quot; anlege und dann intialisiere dachte ich mir könnte ich einen Zeiger setzen.</p>
<p>Angelegt habe ich die Membervariable so (Header Datei):</p>
<pre><code>/////////////////////////////////////////////////////////////////////////////
// CXXXDlg Dialogfeld

class CXXXDlg : public CDialog
{
// Konstruktion
public:
	CXXXDlg(CWnd* pParent = NULL);	// Standard-Konstruktor

// Dialogfelddaten
	//{{AFX_DATA(CLauncherDlg)
	enum { IDD = IDD_LAUNCHER_DIALOG };
	[b]CListBox	m_ListOfficeProg;[/b]
	//}}AFX_DATA

	// Vom Klassenassistenten generierte Überladungen virtueller Funktionen
	//{{AFX_VIRTUAL(CLauncherDlg)
	protected:
	virtual void DoDataExchange(CDataExchange* pDX);	// DDX/DDV-Unterstützung
	//}}AFX_VIRTUAL

// Implementierung
protected:
	HICON m_hIcon;

	// Generierte Message-Map-Funktionen
	//{{AFX_MSG(CLauncherDlg)
	virtual BOOL OnInitDialog();
/*	afx_msg void OnSysCommand(UINT nID, LPARAM lParam);*/
	afx_msg void OnPaint();
	afx_msg HCURSOR OnQueryDragIcon();
	afx_msg void OnSelchangeList1();
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
};
</code></pre>
<p>initalisiert wird sie dann</p>
<pre><code>BOOL CXXXDlg::OnInitDialog()
{
  .....

  // ZU ERLEDIGEN: Hier zusätzliche Initialisierung einfügen

	[b]CListBox* pCListBox = (CListBox*) GetDlgItem(IDC_LIST1);
        pCListBox=&amp;m_ListOfficeProg;[/b]

 ....
}
</code></pre>
<p>und dann z.B. Zugriff...</p>
<pre><code>void CXXXDlg::OnSelchangeList1() 
{
	int j;
	CString strText;

        [b]
	j= m_ListOfficeProg.GetCurSel();
	m_ListOfficeProg.GetText(j,strText);
	AfxMessageBox(strText);[/b]

}
</code></pre>
<p>aber ich weiß nicht....<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
<p>Gruß<br />
Franky</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1460627</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1460627</guid><dc:creator><![CDATA[FrankTheFox]]></dc:creator><pubDate>Thu, 21 Feb 2008 22:25:35 GMT</pubDate></item><item><title><![CDATA[Reply to Auweia: Memberzugriff mit Zeiger on Fri, 22 Feb 2008 11:36:49 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">CListBox* pCListBox = (CListBox*) GetDlgItem(IDC_LIST1); 
pCListBox=&amp;m_ListOfficeProg;
</code></pre>
<p>Das ist überflüssig. Das macht man nur, wenn man keine Membervariable anlegt und lokal z.B. im InitDialog auf die Liste zugreifen will:</p>
<pre><code class="language-cpp">CListBox* pCListBox = (CListBox*) GetDlgItem(IDC_LIST1);
pCListBox-&gt;Add(..);
pCListBox-&gt;SetCurSel(...);
pCListBox-&gt;GetText(...);
</code></pre>
<p>Du arbeitest doch mit m_ListOfficeProg, also nutze einfach deine Membervariable:</p>
<pre><code class="language-cpp">//z.B.
m_ListOfficeProg.Add(..);
m_ListOfficeProg.SetCurSel(...);
m_ListOfficeProg.GetText(...);
//etc.
</code></pre>
<p>Noch ein Nachtrag:<br />
Die Membervariable muss natürlich über das Studio angelegt werden bzw. du musst den entsprechenden Eintrag in den entsprechenden DoDataExchange nachtragen:</p>
<pre><code class="language-cpp">void CXXDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CXXDlg)
	DDX_Control(pDX, IDC_LIST1, m_ListOfficeProg);
	//}}AFX_DATA_MAP
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1460678</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1460678</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Fri, 22 Feb 2008 11:36:49 GMT</pubDate></item><item><title><![CDATA[Reply to Auweia: Memberzugriff mit Zeiger on Fri, 22 Feb 2008 23:13:24 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>Ich habe eine Membervariable angelegt! Dann habe ich alle überflüssigen Code-Teile des Assistenten rausgeschmissen. Dann lief was nich und ich habe danach die Fehler gefixt und irgendwie dachte ich mir ich müsste dann die CListbox Membervariable per Hand auf so krude Weise einfügen....</p>
<p>Ja ich habe den Teil des Codes überprüft, den &quot;Tester2&quot; als Nachtrag angegeben hat und schwupps da ist meine Membervariable.</p>
<p>Vielen Dank an alle!!!!!</p>
<p>Gruß<br />
Franky</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1461277</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1461277</guid><dc:creator><![CDATA[FrankTheFox]]></dc:creator><pubDate>Fri, 22 Feb 2008 23:13:24 GMT</pubDate></item></channel></rss>