<?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[SDI  und Dialog]]></title><description><![CDATA[<p>Hallo</p>
<p>Hab eine SDI Anwendung (Basisklasse CFormView)erstellt und über Menue<br />
rufe ich ein Dialog auf.<br />
Die dazu gehörige Funktion lautet</p>
<p>void CSerialView::OnShowdlgAnlage()<br />
{<br />
// TODO: Code für Befehlsbehandlungsroutine hier einfügen<br />
CNeueAnlagen CMyDlg;<br />
int nReturnWert;</p>
<p>// Hier wird der Dialog initialisiert</p>
<p>CMyDlg.m_nSynColor= m_nSynColor;<br />
CMyDlg.m_ctrEdit3.SetHintergrundFarbe(RGB(239,213,213));</p>
<p>// Dialog anzeigen<br />
nReturnWert = CMyDlg.DoModal();<br />
// Returncode auswerten<br />
if (nReturnWert == IDOK)<br />
{<br />
TRACE(&quot;Dialogdaten übernommen\n&quot;);<br />
m_nSynColor = CMyDlg.m_nSynColor;<br />
}<br />
else<br />
TRACE(&quot;Dialog abgebrochen&quot;);</p>
<p>}</p>
<p>Beim initialisieren des Dialoges im Debug modus erhalte ich eine Fehlermeldung, im Releas modus nicht. Da ich vermute das ich kein Handel auf &quot;m_ctrEdit3.SetHintergrundFarbe(RGB(239,213,213))&quot; habe.</p>
<p>m_ctrEdit3 ist in der Dialogklasse so deviniert:</p>
<p>&quot;DDX_Control(pDX, IDC_EDIT3, m_ctrEdit3);&quot;<br />
&quot;CEingabefeld m_ctrEdit3;&quot;</p>
<p>Mit CEingabefeld manpuliere ich die Hintergrundfarbe vom einem Eigabefeld.<br />
Wie komme ich an das Handel?</p>
<p>Mit freudlichem Gruß<br />
Califax</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/196313/sdi-und-dialog</link><generator>RSS for Node</generator><lastBuildDate>Thu, 09 Apr 2026 12:00:00 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/196313.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 28 Oct 2007 10:47:44 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to SDI  und Dialog on Sun, 28 Oct 2007 10:47:44 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Hab eine SDI Anwendung (Basisklasse CFormView)erstellt und über Menue<br />
rufe ich ein Dialog auf.<br />
Die dazu gehörige Funktion lautet</p>
<p>void CSerialView::OnShowdlgAnlage()<br />
{<br />
// TODO: Code für Befehlsbehandlungsroutine hier einfügen<br />
CNeueAnlagen CMyDlg;<br />
int nReturnWert;</p>
<p>// Hier wird der Dialog initialisiert</p>
<p>CMyDlg.m_nSynColor= m_nSynColor;<br />
CMyDlg.m_ctrEdit3.SetHintergrundFarbe(RGB(239,213,213));</p>
<p>// Dialog anzeigen<br />
nReturnWert = CMyDlg.DoModal();<br />
// Returncode auswerten<br />
if (nReturnWert == IDOK)<br />
{<br />
TRACE(&quot;Dialogdaten übernommen\n&quot;);<br />
m_nSynColor = CMyDlg.m_nSynColor;<br />
}<br />
else<br />
TRACE(&quot;Dialog abgebrochen&quot;);</p>
<p>}</p>
<p>Beim initialisieren des Dialoges im Debug modus erhalte ich eine Fehlermeldung, im Releas modus nicht. Da ich vermute das ich kein Handel auf &quot;m_ctrEdit3.SetHintergrundFarbe(RGB(239,213,213))&quot; habe.</p>
<p>m_ctrEdit3 ist in der Dialogklasse so deviniert:</p>
<p>&quot;DDX_Control(pDX, IDC_EDIT3, m_ctrEdit3);&quot;<br />
&quot;CEingabefeld m_ctrEdit3;&quot;</p>
<p>Mit CEingabefeld manpuliere ich die Hintergrundfarbe vom einem Eigabefeld.<br />
Wie komme ich an das Handel?</p>
<p>Mit freudlichem Gruß<br />
Califax</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1393494</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1393494</guid><dc:creator><![CDATA[Califax]]></dc:creator><pubDate>Sun, 28 Oct 2007 10:47:44 GMT</pubDate></item><item><title><![CDATA[Reply to SDI  und Dialog on Sun, 28 Oct 2007 16:27:49 GMT]]></title><description><![CDATA[<p>Welche Fehlermeldung erhälst Du?<br />
Dir muss klar sein, dass vor Aufruf von DoModal, keines der Child Controls existiert. Sollte diese Methode also das m_hWnd des COntrols benötigen, bzw. die Existenz des Fensters voraussetzen, muss es zu einem ASSERT kommen.<br />
BTW: Gib uns an was für einen Fehler Du bekommst, dann ist es einfacher gezielt zu helfen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1393676</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1393676</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Sun, 28 Oct 2007 16:27:49 GMT</pubDate></item><item><title><![CDATA[Reply to SDI  und Dialog on Sun, 28 Oct 2007 16:47:49 GMT]]></title><description><![CDATA[<p>Hallo Martin</p>
<p>Die Fehlermeldung lautet.</p>
<p>&quot;<br />
Debug Assertion Failed!<br />
Program:C:\c++\code Beispiel\Serial_004\Debug\Serial.exe<br />
File:afxwin2.inl<br />
Line:126</p>
<p>For information on how your program can cause an assertio failure, see the Visual c++ documentation on assert.<br />
&quot;</p>
<p>Danke Califax <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="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1393684</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1393684</guid><dc:creator><![CDATA[Califax]]></dc:creator><pubDate>Sun, 28 Oct 2007 16:47:49 GMT</pubDate></item><item><title><![CDATA[Reply to SDI  und Dialog on Sun, 28 Oct 2007 17:51:44 GMT]]></title><description><![CDATA[<p>Welche Code Zeile ist das in welcher Funktion? Du hast nichtgeschrieben welche MFC Version! Aber meine ertse Begründung scheint korrekt zu sein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1393716</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1393716</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Sun, 28 Oct 2007 17:51:44 GMT</pubDate></item><item><title><![CDATA[Reply to SDI  und Dialog on Sun, 28 Oct 2007 18:37:26 GMT]]></title><description><![CDATA[<p>Du schreibst vor doModal<br />
// Hier wird der Dialog initialisiert<br />
CMyDlg.m_nSynColor= m_nSynColor;<br />
CMyDlg.m_ctrEdit3.SetHintergrundFarbe(RGB(239,213,213));</p>
<p>kommentier mal die beiden zeilen aus.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1393748</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1393748</guid><dc:creator><![CDATA[Verwegener]]></dc:creator><pubDate>Sun, 28 Oct 2007 18:37:26 GMT</pubDate></item><item><title><![CDATA[Reply to SDI  und Dialog on Sun, 28 Oct 2007 18:57:21 GMT]]></title><description><![CDATA[<p>Hi</p>
<p>Ich benutze VC++ 6.0 SP 6<br />
Der Code des Dialogs</p>
<pre><code class="language-cpp">// NeueAnlagen.cpp: Implementierungsdatei

void CNeueAnlagen::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CNeueAnlagen)
	DDX_Control(pDX, IDC_EDIT3, m_ctrEdit3);
	DDX_Radio(pDX, IDC_RADIO1, m_nSynColor);
	//}}AFX_DATA_MAP
}
</code></pre>
<pre><code class="language-cpp">// NeueAnlagen.h : Header-Datei

// Dialogfelddaten
	//{{AFX_DATA(CNeueAnlagen)
	enum { IDD = IDD_DIALOG2 };
	CEingabefeld	m_ctrEdit3;
	CString	m_strAbteilung;
	CString	m_strAnlage;
	//}}AFX_DATA
</code></pre>
<p>Hab ich das richtig verstanden?</p>
<p>Mit dem Code aus der Funktion</p>
<pre><code class="language-cpp">void CSerialView::OnShowdlgAnlage()
CMyDlg.m_nSynColor= m_nSynColor;
</code></pre>
<p>wird eigendlich nur ein Optionsfeld als markiert gesetzt.<br />
Also nicht Teil meines Problems.</p>
<p>Und mit dem Code auch aus der Funktion</p>
<pre><code class="language-cpp">void CSerialView::OnShowdlgAnlage()
CMyDlg.m_ctrEdit3.SetHintergrundFarbe(RGB(239,213,213));
</code></pre>
<p>will ich eigendlich aus der SDI Anwendung herraus<br />
ein Eingabefeld im Dialog die Hintegrundfarbe setzen.<br />
Wenn ich in der Dialogklasse &quot;CNeueAnlagen&quot; in der Funktion</p>
<pre><code class="language-cpp">BOOL CNeueAnlagen::OnInitDialog() 

m_ctrEdit4.SetHintergrundFarbe(RGB(249,255,195));
</code></pre>
<p>so starte ist alles OK .<br />
Also die Funktion &quot;BOOL CNeueAnlagen::OnInitDialog() &quot; soll<br />
nicht benutzt werden.</p>
<p>Gruß Califax</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1393759</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1393759</guid><dc:creator><![CDATA[Califax]]></dc:creator><pubDate>Sun, 28 Oct 2007 18:57:21 GMT</pubDate></item><item><title><![CDATA[Reply to SDI  und Dialog on Mon, 29 Oct 2007 08:10:38 GMT]]></title><description><![CDATA[<p>Du musst trennen zwischen einem erzeugten Control und der Wrapper Klasse.<br />
Wenn Du eine Membervariable setzt, dann wird eben nur ein Wert kopiert, der hat aber noch keinen Einfluiss auf das Control selbst, dass die Daten anzeigen soll (Radio, Edit Control etc.)</p>
<p>Wenn Du nun eine Membervariable benutzt, die ein Control vertritt, dann muss Dir klar sein, dass erst nach Aufruf von DoModal, das Control erzeugt wird. Frühestens kannst Du in OnInitDialog darauf zugreifen. Deshalb werden die Daten aus den Variablen in OnInitDialog auch erst an die Controls übertragen.</p>
<p>BTW: Es ist verwirrend eine Variable, die einen Dialog auf dem Stack entspricht mit C beginnen zu lassen (CMyDlg)!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1393936</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1393936</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Mon, 29 Oct 2007 08:10:38 GMT</pubDate></item><item><title><![CDATA[Reply to SDI  und Dialog on Mon, 29 Oct 2007 16:31:45 GMT]]></title><description><![CDATA[<p>Hallo Martin</p>
<p>Danke für Deine Bemühungen, wenn ich Dich richtig verstanden, hab sieht meine Lösung wie folgt aus.<br />
Mit der Funktion rufe ich das Dialog auf und übergebe die Farbangaben<br />
über die m_RGB_Edi...</p>
<pre><code class="language-cpp">void CSerialView::OnShowdlgAnlage() 
{
	// TODO: Code für Befehlsbehandlungsroutine hier einfügen
    CNeueAnlagen    MyDlg;
    int         nReturnWert;

	// Hier wird der Dialog initialisiert

	MyDlg.m_nSynColor= m_nSynColor;
	MyDlg.m_RGB_Edit3=RGB(255,22,219); 
	MyDlg.m_RGB_Edit4=RGB(249,255,195); 
	MyDlg.m_RGB_Edit5=RGB(195,255,201);
	MyDlg.m_RGB_Edit6=RGB(255,222,219); 

	// Dialog anzeigen
    nReturnWert = MyDlg.DoModal();
    // Returncode auswerten
    if (nReturnWert == IDOK)
    {
        TRACE(&quot;Dialogdaten übernommen\n&quot;);
		m_nSynColor = MyDlg.m_nSynColor;
    }
    else
        TRACE(&quot;Dialog abgebrochen&quot;);

}
</code></pre>
<p>dann rufe ich die Funktion &quot;OnInitDialog&quot; des Dialogs auf<br />
und initialisiere die Eingabefelder mit der gewünschten Hintergrundfarbe.</p>
<pre><code class="language-cpp">COLORREF m_RGB_Edit3;
usw...

BOOL CNeueAnlagen::OnInitDialog() 
{
	CDialog::OnInitDialog();

	// TODO: Zusätzliche Initialisierung hier einfügen

	// Hier werden die Hintergrundfarben gesetzt
	m_ctrEdit3.SetHintergrundFarbe(m_RGB_Edit3);
	m_ctrEdit4.SetHintergrundFarbe(m_RGB_Edit4);
	m_ctrEdit5.SetHintergrundFarbe(m_RGB_Edit5);
	m_ctrEdit6.SetHintergrundFarbe(m_RGB_Edit6);

	// Hier wird der Erste Radio Buttom markiert
    m_nSynColor;

	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX-Eigenschaftenseiten sollten FALSE zurückgeben
}
</code></pre>
<p>Und alles ist schön.</p>
<p>Gruß Califax</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1394231</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1394231</guid><dc:creator><![CDATA[Califax]]></dc:creator><pubDate>Mon, 29 Oct 2007 16:31:45 GMT</pubDate></item><item><title><![CDATA[Reply to SDI  und Dialog on Mon, 29 Oct 2007 17:08:53 GMT]]></title><description><![CDATA[<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1394253</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1394253</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Mon, 29 Oct 2007 17:08:53 GMT</pubDate></item></channel></rss>