<?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[Texteditor - Aenderung des Inhalts bemerken]]></title><description><![CDATA[<p>Hi,<br />
habe mich mal an einem texteditor versucht, hier ist ein ausschnitt:</p>
<pre><code>case WM_CREATE:
// ...
                               FILE *fz;
                               char *buffer = NULL;
                               int iFileSize;

                               fz = fopen(&quot;text.txt&quot;, &quot;rb&quot;);
                               if(fz != NULL)
                               {
                               fseek(fz, 0, SEEK_END);
                               iFileSize = ftell(fz);
                               buffer = (char*)malloc(iFileSize);

                               fseek(fz, 0, SEEK_SET);
                               fread(buffer, 1, iFileSize, fz);
                               fclose(fz);
                               }

                               hEdit
                               = CreateWindowEx( WS_EX_CLIENTEDGE,
                                                 &quot;edit&quot;,
                                                 buffer, // Inhalt des Editfelds
                                                 WS_CHILD | WS_VISIBLE | WS_VSCROLL 
                                                 | ES_MULTILINE | ES_AUTOVSCROLL,
                                                 0, 28, 450, 452,
                                                 hWnd,
                                                 NULL,
                                                 ((LPCREATESTRUCT) lParam) -&gt; hInstance,
                                                 NULL);

                               free(buffer);
// ...
</code></pre>
<p>dann hab ich in WM_CLOSE noch folgendes:</p>
<pre><code>if( bSaved == false )
                              {
                                  iSave = MessageBox( NULL, &quot;Save file?&quot;, &quot;Save&quot;, 
                                                      MB_YESNO | MB_ICONQUESTION );

                                  if( iSave == IDYES )
                                  {
                                      save_file();
                                  }
                              }
</code></pre>
<p>mein problem ist:<br />
sagen wir mal ich oeffne eine datei, veraendere sie, klicke dann auf der toolbar auf &quot;Speichern&quot;; <strong>bool bSaved</strong> wird dann auf <strong>true</strong> geschaltet udn wenn ich den editor verlasse, fragt der mich nix mehr. wenn ich aber nach dem letzten speichern noch etwas veraendert habe und das programm verlasse, soll <strong>bSaved</strong> auf <strong>false</strong> gesetzt werden und das programm fragt den anwender, ob gespeichert werden soll.<br />
habt ihr einen vorschlag? sollte ich die datei beim beenden mit der beim letzten speichern vergleichen?<br />
danke<br />
gruiesse</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/148247/texteditor-aenderung-des-inhalts-bemerken</link><generator>RSS for Node</generator><lastBuildDate>Fri, 17 Jul 2026 03:50:42 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/148247.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 24 May 2006 16:32:57 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Texteditor - Aenderung des Inhalts bemerken on Wed, 24 May 2006 16:32:57 GMT]]></title><description><![CDATA[<p>Hi,<br />
habe mich mal an einem texteditor versucht, hier ist ein ausschnitt:</p>
<pre><code>case WM_CREATE:
// ...
                               FILE *fz;
                               char *buffer = NULL;
                               int iFileSize;

                               fz = fopen(&quot;text.txt&quot;, &quot;rb&quot;);
                               if(fz != NULL)
                               {
                               fseek(fz, 0, SEEK_END);
                               iFileSize = ftell(fz);
                               buffer = (char*)malloc(iFileSize);

                               fseek(fz, 0, SEEK_SET);
                               fread(buffer, 1, iFileSize, fz);
                               fclose(fz);
                               }

                               hEdit
                               = CreateWindowEx( WS_EX_CLIENTEDGE,
                                                 &quot;edit&quot;,
                                                 buffer, // Inhalt des Editfelds
                                                 WS_CHILD | WS_VISIBLE | WS_VSCROLL 
                                                 | ES_MULTILINE | ES_AUTOVSCROLL,
                                                 0, 28, 450, 452,
                                                 hWnd,
                                                 NULL,
                                                 ((LPCREATESTRUCT) lParam) -&gt; hInstance,
                                                 NULL);

                               free(buffer);
// ...
</code></pre>
<p>dann hab ich in WM_CLOSE noch folgendes:</p>
<pre><code>if( bSaved == false )
                              {
                                  iSave = MessageBox( NULL, &quot;Save file?&quot;, &quot;Save&quot;, 
                                                      MB_YESNO | MB_ICONQUESTION );

                                  if( iSave == IDYES )
                                  {
                                      save_file();
                                  }
                              }
</code></pre>
<p>mein problem ist:<br />
sagen wir mal ich oeffne eine datei, veraendere sie, klicke dann auf der toolbar auf &quot;Speichern&quot;; <strong>bool bSaved</strong> wird dann auf <strong>true</strong> geschaltet udn wenn ich den editor verlasse, fragt der mich nix mehr. wenn ich aber nach dem letzten speichern noch etwas veraendert habe und das programm verlasse, soll <strong>bSaved</strong> auf <strong>false</strong> gesetzt werden und das programm fragt den anwender, ob gespeichert werden soll.<br />
habt ihr einen vorschlag? sollte ich die datei beim beenden mit der beim letzten speichern vergleichen?<br />
danke<br />
gruiesse</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1064420</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1064420</guid><dc:creator><![CDATA[DZ]]></dc:creator><pubDate>Wed, 24 May 2006 16:32:57 GMT</pubDate></item><item><title><![CDATA[Reply to Texteditor - Aenderung des Inhalts bemerken on Wed, 24 May 2006 17:37:14 GMT]]></title><description><![CDATA[<p>Nein, Du solltest bSaved immer dann auf false setzen, wenn eine Eingabe in Deinem Textfeld vollzogen wurde. Egal, was getan wurde. Sobald etwas in das Textfeld geschrieben wird, setze die Variable auf false. (Ich weiß jetzt nicht, wo man das in der WinAPI macht, aber es gibt doch sicher eine Funktion, die aufgerufen wird, sobald Du im Textfeld ein Zeichen eingibst. Und da kommt das rein.) Dann kannst Du sicher sein, daß nach einer Änderung immer gefragt wird, ob gespeichert werden soll. Die Dateien zu vergleichen ist zu aufwändig.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1064458</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1064458</guid><dc:creator><![CDATA[NES-Spieler]]></dc:creator><pubDate>Wed, 24 May 2006 17:37:14 GMT</pubDate></item><item><title><![CDATA[Reply to Texteditor - Aenderung des Inhalts bemerken on Wed, 24 May 2006 17:42:59 GMT]]></title><description><![CDATA[<p>das könnt ihr euch alles sparen. ein edit-control kann man abfragen ob sich was geändert hat: <a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/commctls/editcontrols/editcontrolreference/editcontrolmessages/em_getmodify.asp" rel="nofollow">http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/commctls/editcontrols/editcontrolreference/editcontrolmessages/em_getmodify.asp</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1064464</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1064464</guid><dc:creator><![CDATA[net 0]]></dc:creator><pubDate>Wed, 24 May 2006 17:42:59 GMT</pubDate></item><item><title><![CDATA[Reply to Texteditor - Aenderung des Inhalts bemerken on Thu, 25 May 2006 17:23:48 GMT]]></title><description><![CDATA[<p>ja, danke, hat geklappt. und zwar...</p>
<p>ich habe am ende des programms folgendes eingebaut:</p>
<pre><code>if( ( (SendMessage( hEdit, EM_GETMODIFY, wParam, lParam )) !=0 )
                                  &amp;&amp; bSaved == false )
</code></pre>
<p>bei der speichern-funktion setzte ich <strong>bSaved</strong> immer auf <strong>true</strong>; und wenn ich irgendwas ins editfeld eingebe, wird mir an <strong>WM_COMMAND</strong> ne nachricht gesendet;</p>
<pre><code>if( lParam == (LPARAM)hEdit )
                                {
                                    bSaved = false;

                                    return 0;
                                }
</code></pre>
<p>danke nochmals<br />
gruesse</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1065039</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1065039</guid><dc:creator><![CDATA[DZ]]></dc:creator><pubDate>Thu, 25 May 2006 17:23:48 GMT</pubDate></item><item><title><![CDATA[Reply to Texteditor - Aenderung des Inhalts bemerken on Thu, 25 May 2006 20:11:22 GMT]]></title><description><![CDATA[<p>net schrieb:</p>
<blockquote>
<p>das könnt ihr euch alles sparen. ein edit-control kann man abfragen ob sich was geändert hat: <a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/commctls/editcontrols/editcontrolreference/editcontrolmessages/em_getmodify.asp" rel="nofollow">http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/commctls/editcontrols/editcontrolreference/editcontrolmessages/em_getmodify.asp</a></p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/1065110</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1065110</guid><dc:creator><![CDATA[lies_hier]]></dc:creator><pubDate>Thu, 25 May 2006 20:11:22 GMT</pubDate></item></channel></rss>