<?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[CRichEditCtrl teilweise nicht editierbar?]]></title><description><![CDATA[<p>Hi 2gether,</p>
<p>gibr es eine Möglichkeit, in einem CRichEditCtrl Textbereiche nicht editierbar zu machen?</p>
<p>Habe folgenden Code:</p>
<pre><code class="language-cpp">CHARFORMAT charformat;

	m_ctrlEdit2.SetSel(2, 8);
	m_ctrlEdit2.GetSelectionCharFormat(charformat);
	charformat.crTextColor = RGB( 128, 128, 128 );
	charformat.dwMask |= CFM_COLOR;
	charformat.dwEffects &amp;= ~CFE_AUTOCOLOR;
	m_ctrlEdit2.SetSelectionCharFormat(charformat);
</code></pre>
<p>ist nur zum testen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f576.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--sunglasses"
      title=":sunglasses:"
      alt="🕶"
    /></p>
<p>Das einfärben der Textbereichs funktioniert auch. Damit soll ein gesperrter Bereich dargestellt werden.<br />
Wie muss nun dieser Code erweitert werden, um eine Änderung zu unterbinden?</p>
<p>Habs schon mit CFM_PROTECTED / CFE_PROTECTED versucht, kriegs aber irgendwie nicht gebacken <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>
<p>Hilfe <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>
<p>grüssle <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>Edit: Seit ich die CEdits durch CRichEditCtrl ausgewechselt habe, werden sie nicht mehr 'eingefärbt' Bei den CEdits passierte dies bei EN_SETFOCUS mit WM_CTLCOLOR. Hab ich da irgendwas übersehen?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/200422/cricheditctrl-teilweise-nicht-editierbar</link><generator>RSS for Node</generator><lastBuildDate>Tue, 07 Apr 2026 01:14:30 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/200422.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 14 Dec 2007 15:06:04 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to CRichEditCtrl teilweise nicht editierbar? on Fri, 14 Dec 2007 15:13:24 GMT]]></title><description><![CDATA[<p>Hi 2gether,</p>
<p>gibr es eine Möglichkeit, in einem CRichEditCtrl Textbereiche nicht editierbar zu machen?</p>
<p>Habe folgenden Code:</p>
<pre><code class="language-cpp">CHARFORMAT charformat;

	m_ctrlEdit2.SetSel(2, 8);
	m_ctrlEdit2.GetSelectionCharFormat(charformat);
	charformat.crTextColor = RGB( 128, 128, 128 );
	charformat.dwMask |= CFM_COLOR;
	charformat.dwEffects &amp;= ~CFE_AUTOCOLOR;
	m_ctrlEdit2.SetSelectionCharFormat(charformat);
</code></pre>
<p>ist nur zum testen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f576.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--sunglasses"
      title=":sunglasses:"
      alt="🕶"
    /></p>
<p>Das einfärben der Textbereichs funktioniert auch. Damit soll ein gesperrter Bereich dargestellt werden.<br />
Wie muss nun dieser Code erweitert werden, um eine Änderung zu unterbinden?</p>
<p>Habs schon mit CFM_PROTECTED / CFE_PROTECTED versucht, kriegs aber irgendwie nicht gebacken <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>
<p>Hilfe <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>
<p>grüssle <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>Edit: Seit ich die CEdits durch CRichEditCtrl ausgewechselt habe, werden sie nicht mehr 'eingefärbt' Bei den CEdits passierte dies bei EN_SETFOCUS mit WM_CTLCOLOR. Hab ich da irgendwas übersehen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1420595</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1420595</guid><dc:creator><![CDATA[Smitty]]></dc:creator><pubDate>Fri, 14 Dec 2007 15:13:24 GMT</pubDate></item><item><title><![CDATA[Reply to CRichEditCtrl teilweise nicht editierbar? on Thu, 20 Dec 2007 10:47:26 GMT]]></title><description><![CDATA[<p>Sodele, für alle die es interessiert: Die Lösung <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f576.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--sunglasses"
      title=":sunglasses:"
      alt="🕶"
    /></p>
<p>- Für das CRichEditCtrl im Klassenassi die <strong>EN_PROTECTED</strong> erstellen</p>
<pre><code class="language-cpp">void CFileReaderView::OnProtectedEdit1(NMHDR* pNMHDR, LRESULT* pResult) 
{
	ENPROTECTED *pEnProtected = reinterpret_cast&lt;ENPROTECTED *&gt;(pNMHDR);
	// TODO: Das Steuerelement sendet diese Benachrichtigung nur, wenn die Funktion
	// CFormView::OnInitDialog() überschrieben wird, um die EM_SETEVENTMASK-Nachricht
	// an das Steuerelement mit dem ENM_PROTECTED-Attribut ORed in die Maske lParam zu senden.

	// TODO: Code für die Behandlungsroutine der Steuerelement-Benachrichtigung hier einfügen

	*pResult = 0; // ändern zu:
	*pResult = TRUE;
}
</code></pre>
<p>pResult muss je nach Bedarf umgeschaltet werden. Nach einer Änderung( oder auch nur versuchten Änderung <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="😉"
    /> ) des Textes muss pResult FALSE zurückgeben, sonst kann kein neuer Text gesetzt werden!</p>
<p>- Im OnInit*** dann folgendes:</p>
<pre><code class="language-cpp">m_ctrlEdit1.SetEventMask( m_ctrlEdit1.GetEventMask() | ENM_PROTECTED );
</code></pre>
<p>- Dann eine Funktion zum setzen der nicht editierbaren Bereiche, z. B.</p>
<pre><code class="language-cpp">void CFileReaderView::MarkTagsinRichEdit(CRichEditCtrl *re)
{
	long aPos, ePos;
	re-&gt;GetSel( aPos, ePos ); // wichtig, um die Pos zu behalten!

	int dlgid = re-&gt;GetDlgCtrlID();
	CString reText = _T(&quot;&quot;);
	GetDlgItemText( dlgid, reText );

	CHARFORMAT cf;

	int f1 = 0;
	int f2 = 0;

	while( f1 &gt; -1 )
	{
		f1 = reText.Find( _T(&quot;&lt;ut&gt;&quot;), f1);
		f2 = reText.Find( _T(&quot;&lt;/ut&gt;&quot;), f1 );

		if( f2 &gt; f1 )
		{
			re-&gt;SetSel( f1, f2+5 );
			re-&gt;GetSelectionCharFormat(cf);
			cf.crTextColor = RGB( 128, 128, 128 );
			cf.dwMask |= CFM_COLOR | CFM_PROTECTED;
			cf.dwEffects &amp;= ~CFE_AUTOCOLOR;
			cf.dwEffects |= CFE_PROTECTED;
			re-&gt;SetSelectionCharFormat(cf);  
			f1 = f2;
		}
	}
	re-&gt;SetSel( aPos, ePos );
}
</code></pre>
<p>- Und *<em>MarkTagsinRichEdit(CRichEditCtrl <em>re)</em></em> wird aus der <strong>EN_CHANGE</strong> des CRichEditCtrl's aufgerufen.</p>
<p>That's all <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>grüssle :xmas1:</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1423570</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1423570</guid><dc:creator><![CDATA[Smitty]]></dc:creator><pubDate>Thu, 20 Dec 2007 10:47:26 GMT</pubDate></item></channel></rss>