Zuweisen einen Textpuffer

Wenn das System ein Edit-Steuerelement erstellt, es automatisch einen Textpuffer erstellt, legt die ursprüngliche Größe und erhöht sich die Größe nach Bedarf. Die Größe kann bis zu eine vordefinierte Grenze von etwa 32 Kilobyte für einzeilige Edit-Steuerelemente. Da diese Grenze ändern kann, nennt man eine weiche Grenze. Eine Anwendung kann eine feste Grenze an die Größe des Puffers durch Senden einer EM_SETLIMITTEXT -Nachricht an das Edit-Steuerelement festlegen. Wenn der Puffer entweder überschreitet, sendet das System der Anwendung eine EN_ERRSPACE Nachricht. Eine Anwendung kann die Strombegrenzung Text abrufen, indem Sie eine EM_GETLIMITTEXT -Nachricht.

Das System erzeugt in der Regel Bearbeitungspuffer Steuerelement in einem Dialogfeld mit Speicher außerhalb der Anwendung Datensegment. Eine Anwendung kann dieses Standardverhalten Zuordnung unterdrücken und erstellen den Puffer aus seiner lokalen Heap mithilfe den DS_LOCALEDIT-Stil, wenn das Edit-Steuerelement zu erstellen. Eine Anwendung, die den DS_LOCALEDIT Stil ist verantwortlich für alle Puffer-Zuweisungen. Damit wird die anfängliche Zuteilung, eine Anwendung aufrufen kann die LocalAlloc -Funktion und übergeben Sie die zurückgegebenen Puffers behandeln, um das Edit-Steuerelement durch eine EM_SETHANDLE -Nachricht senden. Um spätere Zuweisungen (in Reaktion auf eine EN_ERRSPACE-Nachricht, z. B.) zu machen, sollte eine Anwendung speichern den aktuellen Puffer-Inhalt (falls erforderlich) und erhalten einen neuen Puffer wie folgt

  1. Rufen Sie das Handle des Arbeitsspeichers derzeit für den Text in einem mehrzeiligen Edit-Steuerelement zugeordnet, indem Sie dem Steuerelement eine EM_GETHANDLE -Nachricht ab.
  2. Freie Puffer durch Aufruf der LocalFree -Funktion.
  3. Erhalten Sie ein neuer Puffer (und Puffer Handle) durch Aufrufen von LocalAlloc.
  4. Geben Sie das Puffer-Handle an das System, indem Sie dem Steuerelement eine EM_SETHANDLE -Nachricht.

Die Meldungen EM_SETHANDLE und EM_GETHANDLE gelten nur für mehrzeilige Bearbeitungssteuerelemente.

Eine Anwendung, die das Standardverhalten für die Zuweisung verwendet (d.h. verwendet nicht den DS_LOCALEDIT-Stil) muss nicht EM_SETHANDLE und EM_GETHANDLE Nachrichten senden, um das Edit-Steuerelement.

Senden einer Nachricht EM_SETHANDLE hat mehrere Nebenwirkungen: es löscht die rückgängig-Flag (wobei die EM_CANUNDO -Nachricht 0 zurück), es löscht die Flagge ändern (wodurch die EM_GETMODIFY Nachricht 0 zurück) und zeichnet es neu Fenster Control bearbeiten.

Index