Metin arabellek ayırma

Sistem düzenleme denetimine oluşturduğunda, bu otomatik olarak bir metin ara oluşturur, başlangıç boyutunu ayarlar ve gerektiği şekilde artar. Boyutu yaklaşık 32 kilobayttır tek satırlı düzenleme denetimleri için önceden tanımlanmış bir sınırlı olabilir. Çünkü bu sınırı değiştirebilirsiniz, yumuşak sınırına denir. Uygulama kesin bir sınır düzenleme denetimi için bir EM_SETLIMITTEXT iletisi göndererek arabellek boyutunu ayarlayabilirsiniz. Tampon ya da sınırı aşarsa, sistem uygulama bir en_errspace iletisi gönderir. Bir uygulama geçerli metin sınırı bir EM_GETLIMITTEXT iletisi göndererek alabilirsiniz.

Sistem genellikle uygulamanın veri kesimi dışında kullanılarak iletişim kutusu içinde bir düzenleme denetimi arabellek oluşturur. Bir uygulama, bu varsayılan ayırma davranışı bastırmak ve düzenleme denetimi oluştururken DS_LOCALEDIT stilini kullanarak kendi yerel öbekten arabelleği oluşturmak. DS_LOCALEDIT stili kullanan bir uygulama, tüm arabellek ayırma işlemleri için sorumludur. İlk tahsisi yapmak için uygulama çağırabilirsiniz LocalAlloc işlevi ve geçmek döndürülen arabellek ele düzenleme denetimi için bir em_sethandle iletisi göndererek. Sonraki ayırma (örneğin bir en_errspace iletisi yanıtı) yapmak için uygulama geçerli arabellek içeriği (gerekirse) kaydedin ve yeni tampon gibi elde

  1. Şu anda çok satırlı düzenleme denetimi metin için denetimi bir em_gethandle iletisi göndererek ayrılan belleğin ele almak.
  2. Arabellek çağırarak ücretsiz LocalFree işlevi.
  3. LocalAlloc arayarak bir yeni tampon (ve arabellek tutamacı) elde.
  4. Denetimi bir em_sethandle iletisi göndererek sisteme arabellek tutamacı vermek.

Em_sethandle ve em_gethandle iletileri yalnızca çok satırlı düzenleme denetimleri için geçerlidir.

Varsayılan ayırma davranışı kullanan bir uygulama (başka bir deyişle, DS_LOCALEDIT stili kullanmaz) em_sethandle ve em_gethandle için düzenleme denetimi göndermek gerekir değil.

em_sethandle iletisi gönderme bazı yan etkileri vardır: (sıfır iade em_canundo mesaj yapma) geri al bayrak temizler, (sıfır iade EM_GETMODIFY mesaj yapma) Değiştir bayrağı temizler ve düzenleme denetimi penceresi yeniden çizer.

Index