<?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[RichEdit will nicht]]></title><description><![CDATA[<p>ich frag mich hier was das soll, ich will per createwindow ein richedit erstellen und mach das so wie in der msdn beschrieben</p>
<p>erst LoadLobrary mit einer der dll {hab bereits alle durchprobiert, gehen auch alle}<br />
und dann CreateWindow mit entweder &quot;RichEdit&quot; oder RICHEDIT_CLASS</p>
<p>&quot;RichEdit&quot; compiliert - erstellt aber nichts<br />
und<br />
RICHEDIT_CLASS ist immer unbekannt</p>
<p>hilfe</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/171303/richedit-will-nicht</link><generator>RSS for Node</generator><lastBuildDate>Tue, 14 Jul 2026 08:20:58 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/171303.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 24 Jan 2007 11:35:35 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to RichEdit will nicht on Wed, 24 Jan 2007 11:35:35 GMT]]></title><description><![CDATA[<p>ich frag mich hier was das soll, ich will per createwindow ein richedit erstellen und mach das so wie in der msdn beschrieben</p>
<p>erst LoadLobrary mit einer der dll {hab bereits alle durchprobiert, gehen auch alle}<br />
und dann CreateWindow mit entweder &quot;RichEdit&quot; oder RICHEDIT_CLASS</p>
<p>&quot;RichEdit&quot; compiliert - erstellt aber nichts<br />
und<br />
RICHEDIT_CLASS ist immer unbekannt</p>
<p>hilfe</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1215865</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1215865</guid><dc:creator><![CDATA[EXDW]]></dc:creator><pubDate>Wed, 24 Jan 2007 11:35:35 GMT</pubDate></item><item><title><![CDATA[Reply to RichEdit will nicht on Wed, 24 Jan 2007 11:48:48 GMT]]></title><description><![CDATA[<p>Was ist mit InitCommonControls? Ansonsten post doch mal dein Code. Sonst irgendwelche Fehlermeldungen?</p>
<p>MfG schirrmie</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1215876</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1215876</guid><dc:creator><![CDATA[schirrmie]]></dc:creator><pubDate>Wed, 24 Jan 2007 11:48:48 GMT</pubDate></item><item><title><![CDATA[Reply to RichEdit will nicht on Wed, 24 Jan 2007 11:59:13 GMT]]></title><description><![CDATA[<p>InitCommonControls hab ich schon lange drinne da ich viele andere controls ebenfals problemlos verwende</p>
<p>fehlermeldung bekomm ich nur bei RICHEDIT_CLASS - es sei unbekannt<br />
wenn ich _T(&quot;RichEdit&quot;) mach compiliert es ohne fehler, aber der bereich wo das fenster zu sehen sein soll ist einfach leer</p>
<p>ich hab mal ein bissl gegooglet, habs mitlerweile hinbekommen:</p>
<p>also RICHEDIT_CLASS geht bei mir nie egal welche dll ich verwende<br />
dll' konnte ich alle immer fehlerfrei laden</p>
<p>_T(&quot;Msftedit.dll&quot;) + _T(&quot;RichEdit&quot;) = geht nicht<br />
_T(&quot;Riched20.dll&quot;) + _T(&quot;RichEdit&quot;) = geht nicht<br />
_T(&quot;Riched32.dll&quot;) + _T(&quot;RichEdit&quot;) = geht</p>
<p>hab xp sp2 auf vs 2005 prof<br />
wenn wuerde ich schon die neueste version nutzen wollen - die Riched32.dll beinhaltet laut msdn nur die 1.0</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1215885</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1215885</guid><dc:creator><![CDATA[EXDW]]></dc:creator><pubDate>Wed, 24 Jan 2007 11:59:13 GMT</pubDate></item><item><title><![CDATA[Reply to RichEdit will nicht on Wed, 24 Jan 2007 13:15:23 GMT]]></title><description><![CDATA[<p>Du musst richedit.h einbinden (für RICHEDIT_CLASS).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1215969</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1215969</guid><dc:creator><![CDATA[Airdamn]]></dc:creator><pubDate>Wed, 24 Jan 2007 13:15:23 GMT</pubDate></item><item><title><![CDATA[Reply to RichEdit will nicht on Wed, 24 Jan 2007 15:02:33 GMT]]></title><description><![CDATA[<p>ah, stimmt, danke</p>
<p>eine frage wo ich grad hier bin #gg</p>
<p>ich hab ein richedit mit diesen text:<br />
&quot;Das ist ein ein Text in der ersten Zeile&quot;<br />
und ich suche nach:<br />
&quot;Text&quot;<br />
aber er findet nie was, das verwirrt mich</p>
<pre><code class="language-cpp">long CRichedit::FindString(DString strName, unsigned int uiAt) const{
    CHARRANGE Search;
    Search.cpMin = uiAt;
    Search.cpMax = -1;

    CHARRANGE Found;
    Found.cpMin = 0;
    Found.cpMax = -1;

    FINDTEXTEX text;
    text.chrg = Search;
    text.lpstrText = const_cast&lt;LPTSTR&gt;(strName.c_str());
    text.chrgText = Found;

    ::SendMessage(m_Handle, EM_FINDTEXTEX, 0, reinterpret_cast&lt;LPARAM&gt;(&amp;text));
    return text.chrgText.cpMin;
    // text.chrgText.cpMin sowie cpMax sind nach SendMessage immer -1
}
long pos = m_Element.FindString(_T(&quot;Text&quot;), 0); // immer -1
</code></pre>
<p>zudem ist &quot;FR_DOWN&quot; oder &quot;FR_MATCHCASE&quot; immer unbekannt, hab ich auch nicht in intellisense<br />
jemand n plan ?</p>
<p>wenn ich erst alles hole und dann den string durchsuche funktioniert logischerweise alles - aber ich find das ein bloeden workaround - ich moechte nicht jedesmal das gesammte edit auslesen muessen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1216075</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1216075</guid><dc:creator><![CDATA[EXDW]]></dc:creator><pubDate>Wed, 24 Jan 2007 15:02:33 GMT</pubDate></item><item><title><![CDATA[Reply to RichEdit will nicht on Wed, 24 Jan 2007 16:04:54 GMT]]></title><description><![CDATA[<p>Moin Mr Evil <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>Mr Evil schrieb:</p>
<blockquote>
<p>aber er findet nie was, das verwirrt mich</p>
</blockquote>
<p>Hm was sagt denn <em>GetLastError()</em> ?</p>
<p>Mr Evil schrieb:</p>
<blockquote>
<pre><code class="language-cpp">long CRichedit::FindString(DString strName, unsigned int uiAt) const{
    CHARRANGE Search;
    Search.cpMin = uiAt;
    Search.cpMax = -1;

    CHARRANGE Found;
    Found.cpMin = 0;
    Found.cpMax = -1;
	
    FINDTEXTEX text;
    text.chrg = Search;
    text.lpstrText = const_cast&lt;LPTSTR&gt;(strName.c_str());
    text.chrgText = Found;

    ::SendMessage(m_Handle, EM_FINDTEXTEX, 0, reinterpret_cast&lt;LPARAM&gt;(&amp;text));
    return text.chrgText.cpMin;
    // text.chrgText.cpMin sowie cpMax sind nach SendMessage immer -1
}
long pos = m_Element.FindString(_T(&quot;Text&quot;), 0); // immer -1
</code></pre>
</blockquote>
<p>Lass da mal den <em>const_cast</em> weg, sowas gehört sich nicht <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="😉"
    /> . Man castet das <em>const</em> von <em>c_str()</em> nicht einfach so weg (und hier ist es auch nicht nötig).<br />
Siehe</p>
<blockquote>
<pre><code>[...]LP[b]C[/b]TSTR lpstrText;[...]
</code></pre>
</blockquote>
<p>. Das <strong>C</strong> impliziert hier const <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 brauchst hier übrigens die beiden Variablen 'Search' und 'Found' nicht <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="💡"
    /> , da Du ja auch direkt über die Struktur <em>FINDTEXTEX</em> darauf zugreifen kannst.</p>
<p>Mr Evil schrieb:</p>
<blockquote>
<p>zudem ist &quot;FR_DOWN&quot; oder &quot;FR_MATCHCASE&quot; immer unbekannt, hab ich auch nicht in intellisense<br />
jemand n plan ?</p>
</blockquote>
<p>Jo da brauchst Du noch den Header: <strong>commdlg.h</strong></p>
<p>Mr Evil schrieb:</p>
<blockquote>
<p>wenn ich erst alles hole und dann den string durchsuche funktioniert logischerweise alles - aber ich find das ein bloeden workaround - ich moechte nicht jedesmal das gesammte edit auslesen muessen</p>
</blockquote>
<p>Jo das ist echt hässlich^^, und dauert bei längeren Texten ja auch wesentlich länger... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
<p>PS: Wenn es Dir nichts ausmacht, kannst Du mir die Klassen mal per Mail schicken ? - würde mich echt interessieren <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f60b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_savoring_food"
      title=":yum:"
      alt="😋"
    /> ! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/27a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--right_arrow"
      title=":arrow_right:"
      alt="➡"
    /> sieht nämlich ganz ordentlich aus <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>
<p>PPS: Das Flag <em>FR_DOWN</em> bringt Dir in Deiner derzeitigen Version (wie ich vermute, da Du warscheinlich RichEdits der Version 1 erstellst) nichts, siehe:</p>
<p>MSDN zu EM_FINDTEXTEX Message schrieb:</p>
<blockquote>
<p>Rich Edit 1.0: The FR_DOWN flag is ignored. The search is always from the end of the current selection to the end of the document.</p>
</blockquote>
<p>Quelle: <a href="http://msdn2.microsoft.com/en-us/library/ms651982.aspx" rel="nofollow">http://msdn2.microsoft.com/en-us/library/ms651982.aspx</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1216142</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1216142</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Wed, 24 Jan 2007 16:04:54 GMT</pubDate></item><item><title><![CDATA[Reply to RichEdit will nicht on Wed, 24 Jan 2007 18:32:00 GMT]]></title><description><![CDATA[<p>CodeFinder schrieb:</p>
<blockquote>
<p>Hm was sagt denn <em>GetLastError()</em> ?</p>
</blockquote>
<p>das hab ich bisher nicht geschaut #gg</p>
<p>CodeFinder schrieb:</p>
<blockquote>
<p>Lass da mal den <em>const_cast</em> weg, sowas gehört sich nicht <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="😉"
    /> . Man castet das <em>const</em> von <em>c_str()</em> nicht einfach so weg (und hier ist es auch nicht nötig).<br />
Siehe</p>
<blockquote>
<pre><code>[...]LP[b]C[/b]TSTR lpstrText;[...]
</code></pre>
</blockquote>
<p>. Das <strong>C</strong> impliziert hier const <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>
</blockquote>
<p>wenn ich da nicht caste bekomm ich nur bloede error im form von &quot;kann x nicht nach LPTSTR schieben&quot;</p>
<p>CodeFinder schrieb:</p>
<blockquote>
<p>Du brauchst hier übrigens die beiden Variablen 'Search' und 'Found' nicht <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="💡"
    /> , da Du ja auch direkt über die Struktur <em>FINDTEXTEX</em> darauf zugreifen kannst.</p>
</blockquote>
<p>ich dacht ich muss die vorher angeben, da in der MSDN zu FINDTEXTEX steht das ich was angeben muss</p>
<p>CodeFinder schrieb:</p>
<blockquote>
<p>Jo da brauchst Du noch den Header: <strong>commdlg.h</strong></p>
</blockquote>
<p>ok, danke</p>
<p>CodeFinder schrieb:</p>
<blockquote>
<p>Jo das ist echt hässlich^^, und dauert bei längeren Texten ja auch wesentlich länger... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
</blockquote>
<p>darum will ich es ja vermeiden</p>
<p>CodeFinder schrieb:</p>
<blockquote>
<p>PS: Wenn es Dir nichts ausmacht, kannst Du mir die Klassen mal per Mail schicken ? - würde mich echt interessieren <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f60b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_savoring_food"
      title=":yum:"
      alt="😋"
    /> ! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/27a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--right_arrow"
      title=":arrow_right:"
      alt="➡"
    /> sieht nämlich ganz ordentlich aus <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>
</blockquote>
<p>#gg danke, ich kapsel, wie ich hier irgendwo schonmal erwaehnte, die WinAPI in klassen welche mich die zugriffe erleichtern - aehnlich wie die MFC usw - diese elemente habe ich schon &quot;fertig&quot; {erweiterbar ist es ja immer}:<br />
Button:<br />
Checkbox:<br />
Edit:<br />
Listbox:<br />
Listbox Control:<br />
Progress Bar:<br />
Status Bar:<br />
Textbox:<br />
Groupbox:<br />
Radiobox:<br />
Combobox:<br />
Slider:<br />
Scrollbar:<br />
Treeview:<br />
meine aufrufe sehen immer so aus<br />
in der main klasse fuer das hauptfenster einfach eine instanz meiner klasse</p>
<pre><code class="language-cpp">CElement m_Element;
</code></pre>
<p>und dann</p>
<pre><code class="language-cpp">//CElement::Create(DString strName, ELEMPOS pos, HWND *MainHandle, unsigned int uiId)
m_Element.Create(_T(&quot;Titel&quot;), ELEMPOS(10, 10, 70, 20), &amp;hWnd, IDC_ELEMENT);
</code></pre>
<p>bei einer scrollbar oder sowas hab ich das wieder anders</p>
<pre><code class="language-cpp">//CElement::Create(bool Vertical, ELEMPOS pos, HWND *MainHandle, unsigned int ID)
m_Element.Create(false, ELEMPOS(10, 10, 70, 20), &amp;hWnd, IDC_ELEMENT);
</code></pre>
<p>halt je nach bedarf<br />
die einzelnen funktionen auch immer so gekapselt das ich nur minimalistisches aufrufen muss - und auch diverse hilffunktionen die einen den umgang erleichtern zb fuer OnSize ein</p>
<pre><code class="language-cpp">m_Element.SetPos(&amp;ELEMPOS(10, 10, 70, 20));
</code></pre>
<p>dann brauch ich mich nicht um die ganzen windows messages zu kuemmern<br />
ich denk mir halt vorher immer alles moegliche aus was man brauchen koennte und das wird dann eingebunden</p>
<p>ps. DString ist einfach ein define fuer std::string oder std::wstring und ELEMPOS ist eine kleine hilfsklasse aehnlich wie rect nur das diese left, top, wide, height beinhaltet</p>
<p>alle klassen sind un unicode sowie multibyte compilierbar</p>
<p>was ich noch einbinden will ist das ich die messages fuer die elemente auch nur global an die klasse weitergebe und diese dann selber raussucht und verwaltet</p>
<p>was ich auch noch habe ist das direkt nach der _tmain nur drei zeilen sind und das hauptfenster und deren messages bereits in der hauptklasse sind - das moechte ich aber noch verbessern</p>
<p>CodeFinder schrieb:</p>
<blockquote>
<p>PPS: Das Flag <em>FR_DOWN</em> bringt Dir in Deiner derzeitigen Version (wie ich vermute, da Du warscheinlich RichEdits der Version 1 erstellst) nichts, siehe:</p>
</blockquote>
<p>jo das kenn ich, aber ich bin verwirrt was ich ueberhaupt habe, und zwar hab ich diese Riched32.dll includiert und RICHEDIT_CLASS beim create</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1216264</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1216264</guid><dc:creator><![CDATA[EXDW]]></dc:creator><pubDate>Wed, 24 Jan 2007 18:32:00 GMT</pubDate></item><item><title><![CDATA[Reply to RichEdit will nicht on Wed, 24 Jan 2007 19:26:14 GMT]]></title><description><![CDATA[<blockquote>
<p>Button:<br />
Checkbox:<br />
Edit:<br />
Listbox:<br />
Listbox Control:<br />
Progress Bar:<br />
Status Bar:<br />
Textbox:<br />
Groupbox:<br />
Radiobox:<br />
Combobox:<br />
Slider:<br />
Scrollbar:<br />
Treeview:<br />
[...]</p>
</blockquote>
<p>Hey das hört sich echt gut an...war das jetzt ein ja ? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f60b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_savoring_food"
      title=":yum:"
      alt="😋"
    /> ^^</p>
<p>Bezüglich:</p>
<blockquote>
<p>wenn ich da nicht caste bekomm ich nur bloede error im form von &quot;kann x nicht nach LPTSTR schieben&quot;</p>
</blockquote>
<p>Dann solltest Du eine Kopie erstellen (C-String) und die Kopie übergeben, da <em>const_cast</em>'s auf C++ Strings böse enden können.</p>
<blockquote>
<p>ich dacht ich muss die vorher angeben, da in der MSDN zu FINDTEXTEX steht das ich was angeben muss</p>
</blockquote>
<p>Ähm also ich meine das so:</p>
<pre><code class="language-cpp">//  CHARRANGE Search;
//  Search.cpMin = uiAt;
//  Search.cpMax = -1;

    FINDTEXTEX text;
//  text.chrg = Search;
    text.chrg.cpMin = uiAt;
    text.chrg.cpMax = -1;
    // ...
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1216309</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1216309</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Wed, 24 Jan 2007 19:26:14 GMT</pubDate></item><item><title><![CDATA[Reply to RichEdit will nicht on Wed, 24 Jan 2007 20:24:26 GMT]]></title><description><![CDATA[<p>CodeFinder schrieb:</p>
<blockquote>
<p>Hey das hört sich echt gut an...war das jetzt ein ja ? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f60b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_savoring_food"
      title=":yum:"
      alt="😋"
    /> ^^</p>
</blockquote>
<p>#gg<br />
solange keiner lacht weil er meint es besser zu koennen {und was auch gut moeglich ist}</p>
<p>CodeFinder schrieb:</p>
<blockquote>
<p>Dann solltest Du eine Kopie erstellen (C-String) und die Kopie übergeben, da <em>const_cast</em>'s auf C++ Strings böse enden können.</p>
</blockquote>
<p>hei gute idee - werd ich gleich morgen versuchen #gg</p>
<p>CodeFinder schrieb:</p>
<blockquote>
<pre><code class="language-cpp">//  CHARRANGE Search;
//  Search.cpMin = uiAt;
//  Search.cpMax = -1;
   
    FINDTEXTEX text;
//  text.chrg = Search;
    text.chrg.cpMin = uiAt;
    text.chrg.cpMax = -1;
    // ...
</code></pre>
</blockquote>
<p>aaaaaaaaaaah, so ist das gemeint, die anderen structs sind da schon bei {=</p>
<p>hier mal die beispielklasse zu checkboxes:</p>
<p>*wegedit*</p>
<p>hat wie man erwarten kann hier und da seine eigenarten - zb das die Font einfach nur ueber ein unsigned int laeuft - und sonst welche sachen die ich so implementiert habe da ich es so immer benutz<br />
List Control und Treeview usw ist natuerlich laenger - klar</p>
<p>nu aber nicht haun #gg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1216353</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1216353</guid><dc:creator><![CDATA[EXDW]]></dc:creator><pubDate>Wed, 24 Jan 2007 20:24:26 GMT</pubDate></item><item><title><![CDATA[Reply to RichEdit will nicht on Wed, 24 Jan 2007 20:16:02 GMT]]></title><description><![CDATA[<blockquote>
<p>nu aber nicht haun #gg</p>
</blockquote>
<p>Ach quatsch wieso denn <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="😉"
    /> . Ich könnte Dir jetzt ne Liste mit Fehlern machen^^ (die zum Teil auch gravierend sind^^) aber ich will Dich ja nicht demotivieren <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>Jo also wenn ok, dann: cpp [minus] coding [at] arcor [punkt] de <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/1216384</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1216384</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Wed, 24 Jan 2007 20:16:02 GMT</pubDate></item><item><title><![CDATA[Reply to RichEdit will nicht on Wed, 24 Jan 2007 20:23:55 GMT]]></title><description><![CDATA[<p>schreib mir ruhig deine meinung an <a href="mailto:mr.evil.evl@gmx.net" rel="nofollow">mr.evil.evl@gmx.net</a> - hab nichts dagegen diverse sachen auszubessern {= danke {=</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1216392</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1216392</guid><dc:creator><![CDATA[EXDW]]></dc:creator><pubDate>Wed, 24 Jan 2007 20:23:55 GMT</pubDate></item><item><title><![CDATA[Reply to RichEdit will nicht on Thu, 25 Jan 2007 07:04:24 GMT]]></title><description><![CDATA[<p>ich hab dir ne mail geschrieben - waere schoen wenn wir uns darueber dann austauschen</p>
<p>zurueck zu dem anderen problem wegen den suchen</p>
<p>ich habs das jetzt so:</p>
<pre><code class="language-cpp">long CRichedit::FindString(DString strName, unsigned int uiAt) const{
    FINDTEXTEX text;
    text.lpstrText = const_cast&lt;LPTSTR&gt;(strName.c_str());
    text.chrg.cpMin = uiAt;
    text.chrg.cpMax = -1;

    ::SendMessage(m_Handle, EM_FINDTEXTEX, 0, reinterpret_cast&lt;LPARAM&gt;(&amp;text));
    return text.chrgText.cpMin;
}
</code></pre>
<p>cpMin ist immer -1<br />
GetLastError gibt hier &quot;5&quot; zurueck - wahrscheinlich da dieses EM_FINDTEXTEX kein GetLastError unterstuetzt, zumindest steht nichts in der MSDN<br />
dort steht aber:</p>
<pre><code>If there are no more matches, the return value is –1.
</code></pre>
<p>und ich bekomm ja immer -1</p>
<p>dazuedit: nachdem ich die &quot;commdlg.h&quot; eingebunden habe und FR_DOWN verwende funktioniert es !! {=</p>
<pre><code class="language-cpp">long CRichedit::FindString(DString strName, unsigned int uiAt) const{
    FINDTEXTEX text;
    text.lpstrText = &amp;strName[0];
    text.chrg.cpMin = uiAt;
    text.chrg.cpMax = -1;

    ::SendMessage(m_Handle, EM_FINDTEXTEX, FR_DOWN, reinterpret_cast&lt;LPARAM&gt;(&amp;text));
    return text.chrgText.cpMin;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1216562</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1216562</guid><dc:creator><![CDATA[EXDW]]></dc:creator><pubDate>Thu, 25 Jan 2007 07:04:24 GMT</pubDate></item><item><title><![CDATA[Reply to RichEdit will nicht on Thu, 25 Jan 2007 11:58:09 GMT]]></title><description><![CDATA[<p>was anderes:</p>
<p>warum funktioniert das nicht, ich bekomm nie etwas zurueck:</p>
<pre><code class="language-cpp">DString CRichedit::GetActLine() const{
	unsigned int pos = (GetActLinePos()-1);
	long leng = (GetLineLenght(pos)+1);
	TCHAR *line = new TCHAR[leng];
	::SecureZeroMemory(line, leng);
	::SendMessage(m_Handle, EM_GETLINE, pos, reinterpret_cast&lt;LPARAM&gt;(line));
	delete [] line;
	return _T(&quot;&quot;);
}
</code></pre>
<p>get last error sagt gar nichts<br />
wenn ich<br />
TCHAR[200] mache holt er die zeile aber ohne abschliessendes \0 - ist dann &quot;das ist die zeileXXXXXXXXXXXXXXX&quot;<br />
wenn ich TCHAR[200] mit \0 deklariere schreibt er nichts hinein</p>
<p>wenn ich &quot;SecureZeroMemory&quot; weg lasse, sind hinter der zeile IMMER noch andere ungewollte zeichen , und dann knallts bei delete<br />
mit SecureZeroMemory knallts nirgends aber ich erhalte auch kein string }=</p>
<p>//dazuedit:</p>
<p>bei dieser variante knallts anders:</p>
<pre><code class="language-cpp">DString CRichedit::GetActLine() const{
	unsigned int pos = (GetActLinePos()-1);
	long leng = (GetLineLenght(pos)+(sizeof(TCHAR)*2));
	TCHAR *line = new TCHAR[leng];
	::SendMessage(m_Handle, EM_GETLINE, pos, reinterpret_cast&lt;LPARAM&gt;(line));
	line[leng] = _T('\0');
	delete [] line;
	return _T(&quot;&quot;);
}
</code></pre>
<p>&quot;wrote to memory after heap&quot;<br />
im debugger sieht alles genau richtig aus</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1216784</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1216784</guid><dc:creator><![CDATA[EXDW]]></dc:creator><pubDate>Thu, 25 Jan 2007 11:58:09 GMT</pubDate></item><item><title><![CDATA[Reply to RichEdit will nicht on Thu, 25 Jan 2007 11:56:33 GMT]]></title><description><![CDATA[<p>Sag mal: Hast Du es schon mal mit lesen probiert? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_down"
      title=":-1:"
      alt="👎"
    /></p>
<p>1. Aus der EM_GETLINE Doku:<br />
Pointer to the buffer that receives a copy of the line. Before sending the message, set the first word of this buffer to the size, in TCHARs, of the buffer. For ANSI text, this is the number of bytes; for Unicode text, this is the number of characters. The size in the first word is overwritten by the copied line.</p>
<p>Ist doch logisch, dass Dir das Ding nicht initialisiert um die Ohren fliegt bzw. bei 0 nichts liefert!</p>
<pre><code class="language-cpp">TCHAR *line = new TCHAR[leng];
*reinterpret_cast&lt;WORD*&gt;(line) = leng;
</code></pre>
<p>2. Es steht nichts in der Doku, dass der String 0 terminert wäre.<br />
Du erhälst die Länge als return Ergebnis:</p>
<pre><code class="language-cpp">leng = ::SendMessage(m_Handle, EM_GETLINE, pos, reinterpret_cast&lt;LPARAM&gt;(line));
line[leng] = _T('\0');
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1216787</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1216787</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Thu, 25 Jan 2007 11:56:33 GMT</pubDate></item><item><title><![CDATA[Reply to RichEdit will nicht on Thu, 25 Jan 2007 12:12:16 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">*reinterpret_cast&lt;WORD*&gt;(line) = leng;
</code></pre>
<p>das hab ich ja noch nie gesehen, hatte das zwar gelesen in der MSDN aber nicht kapiert</p>
<pre><code class="language-cpp">DString CRichedit::GetActLine() const{
	unsigned int pos = (GetActLinePos()-1);
	long leng = (GetLineLenght(pos)+(sizeof(TCHAR)*2));
	TCHAR *line = new TCHAR[leng];
	SecureZeroMemory(line, leng);
	*reinterpret_cast&lt;WORD*&gt;(line) = static_cast&lt;WORD&gt;(leng);
	leng = ::SendMessage(m_Handle, EM_GETLINE, pos, reinterpret_cast&lt;LPARAM&gt;(line));
	line[leng] = _T('\0');
	delete [] line;
	return _T(&quot;&quot;);
}
</code></pre>
<p>knallt trotzdem bei delete mit der meldung &quot;wrote to memory after heap&quot;<br />
die laenge ist aber definitiv korrekt, das zweite leng braeuchte ich gar nicht holen da es oben bei &quot;GetLineLenght&quot; direkt schon geholt wird, also ist die ganze zeit ein unveraenderter wert</p>
<p>bei<br />
long leng = (GetLineLenght(pos)+(sizeof(TCHAR)*2));<br />
knallts und bei<br />
long leng = (GetLineLenght(pos)+(sizeof(TCHAR)*3));<br />
nicht, versteh ich nicht, denn an der letzten stelle wird doch nie was geschrieben</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1216792</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1216792</guid><dc:creator><![CDATA[EXDW]]></dc:creator><pubDate>Thu, 25 Jan 2007 12:12:16 GMT</pubDate></item><item><title><![CDATA[Reply to RichEdit will nicht on Thu, 25 Jan 2007 14:52:07 GMT]]></title><description><![CDATA[<p>Martin Richter schrieb:</p>
<blockquote>
<pre><code class="language-cpp">line[leng] = _T('\0');
</code></pre>
</blockquote>
<p>Sollte da nicht einfach <strong>= 0</strong> reichen ? 0 ist doch 0 <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="😉"
    /> .<br />
<a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/20441">@Mr</a> Evil:<br />
Dann siehts so aus, als würde etwas mit 'GetLineLenght' nicht stimmen.</p>
<p>PS: Jo danke hab Deine Mail bekommen. Werd mich noch zurückmelden!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1216936</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1216936</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Thu, 25 Jan 2007 14:52:07 GMT</pubDate></item><item><title><![CDATA[Reply to RichEdit will nicht on Thu, 25 Jan 2007 15:07:05 GMT]]></title><description><![CDATA[<p>CodeFinder schrieb:</p>
<blockquote>
<p>line[leng] = _T('\0');<br />
Sollte da nicht einfach <strong>= 0</strong> reichen ? 0 ist doch 0 <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>
</blockquote>
<p>ich mach auch immer \0 - das hatte ich damals so gelernt - war allerdings bei C, das \0 bedeutete immer null-terminierung</p>
<p>CodeFinder schrieb:</p>
<blockquote>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/20441">@Mr</a> Evil:<br />
Dann siehts so aus, als würde etwas mit 'GetLineLenght' nicht stimmen.</p>
</blockquote>
<p>tatsaechlich, ich hab das mal mit diversen zeilen durchdebuggt, es lag daran das er &quot;anscheinend&quot; immer von der select position aus ging, ich hab das so gemacht das ich zu begin der funktion die alte selection merke, alles deselektiere, die laenge hole und dann wieder die alte selection drueber - hab ich eigentlich immer gemacht wenn ich es fuer eine funktion die selektierungen aendern muss</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1216950</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1216950</guid><dc:creator><![CDATA[EXDW]]></dc:creator><pubDate>Thu, 25 Jan 2007 15:07:05 GMT</pubDate></item><item><title><![CDATA[Reply to RichEdit will nicht on Thu, 25 Jan 2007 15:22:45 GMT]]></title><description><![CDATA[<p>Mr Evil schrieb:</p>
<blockquote>
<p>CodeFinder schrieb:</p>
<blockquote>
<p>line[leng] = _T('\0');<br />
Sollte da nicht einfach <strong>= 0</strong> reichen ? 0 ist doch 0 <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>
</blockquote>
<p>ich mach auch immer \0 - das hatte ich damals so gelernt - war allerdings bei C, das \0 bedeutete immer null-terminierung</p>
</blockquote>
<p>Jo ist ja auch nicht falsch, nur überflüssig <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: &lt;&lt;Sie haben Post <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="😃"
    /> &gt;&gt;.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1216969</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1216969</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Thu, 25 Jan 2007 15:22:45 GMT</pubDate></item><item><title><![CDATA[Reply to RichEdit will nicht on Thu, 25 Jan 2007 20:13:04 GMT]]></title><description><![CDATA[<p>Ich bin ein Fan von Code bei dem man erkennt, dass wir es hier mit Zeichen und strings zu tun haben.<br />
Deshalb finde ich es sogar lesbarer:</p>
<pre><code class="language-cpp">line[leng] = _T('\0');
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1217161</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1217161</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Thu, 25 Jan 2007 20:13:04 GMT</pubDate></item><item><title><![CDATA[Reply to RichEdit will nicht on Thu, 25 Jan 2007 21:37:34 GMT]]></title><description><![CDATA[<p>Martin Richter schrieb:</p>
<blockquote>
<p>Deshalb finde ich es sogar lesbarer:</p>
</blockquote>
<p>Ok ok, akzeptiert^^.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1217230</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1217230</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Thu, 25 Jan 2007 21:37:34 GMT</pubDate></item></channel></rss>