Nasıl yapılır: programlama yoluyla metin için bir düzenleme denetimi Ekle.

Makale çevirileri Makale çevirileri
Makale numarası: 109550 - Bu makalenin geçerli olduğu ürünleri görün.
Hepsini aç | Hepsini kapa

Özet

Windows tabanlı uygulamaları, düzenleme denetimleri genellikle metin görüntülemek için kullanın. Bu uygulamalar, bazen metin varolan metnin değiştirmek yerine, bir düzenleme denetimine sonuna eklemek gerekir. Windows bunun için iki farklı yolu vardır:
  • EM_SETSEL ve EM_REPLACESEL iletileri kullanır.
  • EM_SETSEL iletinin Pano işlevleri ile metin düzenleme denetimin arabelleğe eklemek için kullanın.

Daha fazla bilgi

Not: EM_SETSEL iletinin ileti parametrelerinin 16-bit sürümü 32-bit sürümü arasında farklı olduğu için 16 veya 32 bitlik bir uygulama buysa, oluşturma zaman belirlemek için Win32 makro aşağıdaki kodu kullanır.

Iletinin EM_SETSEL Windows bir düzenleme denetimini metnin seçili bir aralığı yerleştirmek için kullanılır. Aralığın başlangıç ve bitiş pozisyonlar, aynı konuma ayarlanır, seçim yapıldığında ve o konumda bir şapka yerleştirilir. Windows düzenleme denetimindeki metnin sonunda, şapka işareti koyun ve düzenleme denetimi odağı ayarlamak için aşağıdakileri yapın:
   HWND hEdit = GetDlgItem (hDlg, ID_EDIT);
   int ndx = GetWindowTextLength (hEdit);
   SetFocus (hEdit);
   #ifdef WIN32
      SendMessage (hEdit, EM_SETSEL, (WPARAM)ndx, (LPARAM)ndx);
   #else
      SendMessage (hEdit, EM_SETSEL, 0, MAKELONG (ndx, ndx));
   #endif
çıkıntı işareti düzenleme denetimindeki sonunda yerleştirilir, once, EM_REPLACESEL metin düzenleme denetimi eklemek için kullanabilirsiniz. Bir uygulama, seçilen bir düzenleme denetimine lpszReplace (lParam) parametresi tarafından belirtilen metinle EM_REPLACESEL iletisine gönderir. Geçerli seçim için yerine konacak metni geçerli şapka konuma eklenir. Bu örnek, seçimin sonuna düzenleme denetimi için ayarlar ve arabellekte girer:
   #ifdef WIN32
      SendMessage (hEdit, EM_SETSEL, (WPARAM)ndx, (LPARAM)ndx);
   #else
      SendMessage (hEdit, EM_SETSEL, 0, MAKELONG (ndx, ndx));
   #endif
      SendMessage (hEdit, EM_REPLACESEL, 0, (LPARAM) ((LPSTR) szBuffer));
				
bir düzenleme denetimine metin eklemek için başka bir yolu, Windows panosuna kullanmaktır. Sonra uygulama açmak Pano vardır veya Pano açmak uygun bulduğu ve metni panoya kopyalar, onu WM_PASTE iletinin metin eklemek için düzenleme denetimi gönderebilirsiniz. Kuşkusuz, Pano veriler kaybolacak.

WM_PASTE iletiyi göndermeden önce çıkıntı işareti EM_SETSEL iletinin kullanarak düzenleme denetimi metninin sonuna yerleştirilmesi gerekir. Aşağıda, bu yöntem nasıl gösteren "sahte" kodudur:
   OpenClipBoard () ;
   EmptyClipBoard() ;
   SetClipBoardData() ;

   #ifdef WIN32
      SendMessage (hEdit, EM_SETSEL, (WPARAM)ndx, (LPARAM)ndx);
   #else
      SendMessage (hEdit, EM_SETSEL, 0, MAKELONG (ndx, ndx));
   #endif
      SendMessage (hEdit, WM_PASTE,   0, 0L);
				
bu "sahte" kod, metin düzenleme denetimi sonuna ekler. Pano içindeki veri CF_TEXT biçiminde olması gerektiğini unutmayın.

Özellikler

Makale numarası: 109550 - Last Review: 11 Temmuz 2005 Pazartesi - Gözden geçirme: 1.3
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Platform Software Development Kit - Ocak 2000 Sürümü
  • Microsoft Windows Software Development Kit 3.1
Anahtar Kelimeler: 
kbmt kbctrl kbeditctrl kbhowto KB109550 KbMttr
Machine-translated Article
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:109550

Geri Bildirim Ver

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com