Alocarea un tampon de Text

Când sistemul creează un control de editare, automat creează un tampon de text, stabilește dimensiunea inițială, și mărește dimensiunea după cum este necesar. Dimensiunea pot fi până la o limită predefinită de aproximativ 32 kilobytes pentru singur-linie Editare controale. Deoarece puteți modifica această limită, este numit o limită moale. Cererea poate stabili o limită de greu la dimensiunea tampon prin trimiterea unui mesaj de EM_SETLIMITTEXT comanda editare. Dacă zona-tampon depășește limita fie, sistemul trimite cererea un mesaj EN_ERRSPACE . O cerere poate prelua limita curentă text prin trimiterea unui mesaj de EM_GETLIMITTEXT.

Sistemul de obicei creează o tampon de editare de control într-o casetă de dialog, folosind memorie în afara aplicației date segment. Cererea poate suprima acest comportament implicit de alocare și de a crea tampon din sale locale de lucru utilizând stilul DS_LOCALEDIT, crearea de editare de control. O aplicație care utilizează stilul DS_LOCALEDIT este responsabil pentru toate tampon alocări. Pentru a face atribuirea ini?ială, puteți apela o cerere LocalAlloc funcție și pass tampon returnate ocupa comanda editare de a trimite un mesaj EM_SETHANDLE . Pentru a face alocări ulterioare (ca răspuns la un mesaj EN_ERRSPACE, de exemplu), o cerere ar trebui să salvați conținutul tampon curente (dacă este necesar) și obține un nou tampon după cum urmează

  1. Prelua ghidajul de memorie alocate în prezent pentru textul într-un control de editare cu mai multe linii prin trimiterea controlul mesaj EM_GETHANDLE.
  2. Drum liber tampon de asteptare LocalFree funcție.
  3. Obține un nou tampon (și mâner de tampon) prin apelarea LocalAlloc.
  4. Da ghidajul de tampon la sistemul prin trimiterea controlul mesaj EM_SETHANDLE.

Mesajele EM_SETHANDLE și EM_GETHANDLE se aplică numai controale de editare cu mai multe linii.

O aplicație care utilizează comportamentul implicit alocarea (care este, nu utilizați stilul DS_LOCALEDIT) nu trebuie să trimită mesaje de EM_SETHANDLE și EM_GETHANDLE la comanda editare.

Trimite un mesaj EM_SETHANDLE are mai multe efecte secundare: se golește pavilion anulare (face mesajul EM_CANUNDO reveni zero), se golește pavilion modificare (ceea ce mesajul EM_GETMODIFY reveni zero), și se redesenează fereastra de editare de control.

Index