Tentang Edit Kontrol

Kontrol edit adalah jendela kontrol persegi panjang yang biasanya digunakan dalam kotak dialog untuk memungkinkan pengguna memasukkan dan mengedit teks.

Kontrol edit mendukung kumpulan karakter Unicode di mana karakter adalah dua byte, dan set karakter ANSI di mana karakter adalah satu byte. Untuk informasi selengkapnya tentang kumpulan karakter Unicode dan ANSI, lihat Unicode dan Set Karakter.

Kontrol edit yang kaya mendukung banyak fitur yang tidak tersedia dalam kontrol pengeditan sistem. Untuk informasi selengkapnya, lihat Kontrol Edit Kaya.

Topik berikut dibahas dalam gambaran umum ini.

Edit Fitur Kontrol

Saat dipilih, kontrol edit menampilkan tanda sisipan berkedip yang menunjukkan titik penyisipan. Pengguna kemudian dapat memasukkan teks, memindahkan titik penyisipan, atau memilih teks yang akan diedit dengan menggunakan keyboard atau mouse. Kontrol edit mengirim kode pemberitahuan ke jendela induknya dalam bentuk pesan WM_COMMAND. Untuk informasi selengkapnya tentang pesan dari kontrol edit, lihat Mengedit Pesan Pemberitahuan Kontrol. Jendela induk dapat mengirim pesan ke kontrol edit dalam kotak dialog dengan memanggil fungsi SendDlgItemMessage. Beberapa pesan juga dapat dikirim dengan menggunakan makro yang telah ditentukan sebelumnya.

Sistem ini menyediakan kontrol edit baris tunggal dan kontrol pengeditan multibaris. Edit kontrol milik kelas jendela EDIT.

Kotak kombo adalah kontrol yang menggabungkan banyak fungsionalitas kontrol edit dan kotak daftar. Dalam kotak kombo, kontrol edit menampilkan pilihan saat ini dan kotak daftar menyajikan opsi yang dapat dipilih pengguna. Untuk informasi selengkapnya tentang kotak kombo, lihat Kotak Kombo.

Banyak pengembang menggunakan kotak dialog yang disediakan dalam pustaka kotak dialog umum (Comdlg32.dll) untuk melakukan tugas yang mungkin memerlukan kontrol pengeditan yang disesuaikan. Untuk informasi tentang kotak dialog umum, lihat Pustaka Kotak Dialog Umum.

Edit Tipe dan Gaya Kontrol

Kontrol edit individual dapat memiliki beberapa gaya secara bersamaan. Sebagian besar pengembang menggunakan alat untuk mengembangkan kotak dialog, sehingga mungkin tidak perlu menentukan gaya kontrol edit secara eksplisit. Namun, jika aplikasi membuat kontrol edit menggunakan fungsi CreateWindow atau CreateWindowEx, aplikasi harus menentukan gaya kontrol edit ini. Untuk tabel gaya kontrol edit, lihat Mengedit Gaya Kontrol.

Setiap kontrol edit menentukan kombinasi nilai gaya yang menentukan tampilan dan fitur kontrol edit. Nilai gaya dapat menetapkan tampilan kontrol edit satu baris atau multibaris; ratakan teks dalam kontrol; dan tentukan bagaimana, dan bahkan jika, teks muncul di kontrol edit.

Gaya Multibaris

Ada dua gaya garis untuk kontrol edit. Defaultnya adalah kontrol edit satu baris. Aplikasi juga dapat membuat kontrol pengeditan multibaris dengan menggunakan gaya ES_MULTILINE.

Gaya Pengguliran

Gaya ES_AUTOHSCROLL memberi tahu kontrol edit untuk menggulir teks secara horizontal, jika perlu, saat pengguna memasukkan teks. Jika gaya ini tidak ditentukan, kontrol edit tidak dapat menggulir secara horizontal. Untuk kontrol edit baris tunggal tanpa ES_AUTOHSCROLL, hanya karakter yang mengisi area kontrol yang terlihat yang diterima. Untuk kontrol edit multibaris tanpa ES_AUTOHSCROLL, teks membungkus ke baris berikutnya saat pengguna memasukkan lebih banyak teks daripada yang dapat ditampilkan pada satu baris. Jika ES_AUTOHSCROLL ditentukan untuk kontrol pengeditan multibaris, kontrol menggulir secara horizontal saat pengguna memasukkan lebih banyak teks daripada yang dapat ditampilkan pada satu baris; teks tidak akan dibungkus.

ES_AUTOHSCROLL secara otomatis diterapkan ke kontrol edit multibaris rata kiri yang memiliki gaya WS_HSCROLL. Dengan kata lain, kontrol edit multibaris rata kiri yang memiliki bilah gulir horizontal secara otomatis menggulir secara horizontal.

ES_AUTOHSCROLL diabaikan oleh kontrol pengeditan multibaris yang tidak rata kiri. Kontrol pengeditan multibaris rata kanan dan rata kanan tidak dapat digulir secara horizontal

Gaya ES_AUTOVSCROLL memberi tahu kontrol edit untuk menggulir teks secara vertikal saat pengguna memasukkan lebih banyak teks daripada yang dapat ditampilkan di kontrol edit. Gaya ini hanya berlaku untuk kontrol pengeditan multibaris. Jika gaya ini tidak ditentukan untuk kontrol edit multibaris, kontrol edit tidak akan menerima input ketika lebih banyak teks dimasukkan daripada yang dapat ditampilkan.

Gaya Perataan

Ada tiga gaya yang menyebabkan sistem meratakan teks dalam kontrol edit. Gaya ES_LEFT, ES_CENTER, dan ES_RIGHT menentukan apakah teks diratakan di sebelah kiri, tengah, atau kanan. Kontrol edit multibaris rata kanan dan tengah tidak dapat memiliki gaya ES_AUTOHSCROLL ; artinya, kontrol tersebut tidak dapat menggulir secara horizontal.

Meskipun tidak dimungkinkan untuk mengubah gaya perataan kontrol edit secara dinamis, teknik berikut dapat digunakan untuk mengatasi pembatasan ini:

  • Buat beberapa kontrol edit, satu untuk setiap gaya yang dibutuhkan aplikasi, dan untuk beralih di antara mereka sesuai kebutuhan.
  • Buat kontrol edit baru dengan gaya yang diinginkan sesuai kebutuhan dan beralih ke kontrol baru.

Gaya Teks dan Input

Aplikasi dapat menggunakan gaya untuk menentukan bagaimana kontrol edit menampilkan teks. Gaya ES_LOWERCASE menyebabkan semua karakter huruf besar yang dimasukkan ke dalam kontrol edit dikonversi menjadi huruf kecil. Demikian pula, gaya ES_UPPERCASE menyebabkan semua karakter huruf kecil dikonversi menjadi huruf besar.

Untuk informasi selengkapnya tentang set karakter, lihat Unicode dan Set Karakter.

Gaya ES_NUMBER membatasi input ke digit hanya dalam kontrol edit.

Gaya ES_READONLY mengubah kontrol edit menjadi status baca-saja.

Gaya ES_PASSWORD menampilkan semua karakter dalam kontrol edit baris tunggal sebagai tanda bintang. Aplikasi dapat menentukan karakter yang berbeda untuk ditampilkan dengan menggunakan pesan EM_SETPASSWORDCHAR , seperti yang dijelaskan nanti dalam topik ini.

Jika kontrol edit berasal dari Comctl32.dll versi 6, lingkaran hitam adalah karakter default untuk gaya ES_PASSWORD. Dalam kontrol edit dari versi kontrol umum sebelumnya, karakter default adalah tanda bintang.

Gaya ES_OEMCONVERT menyebabkan teks yang dimasukkan ke dalam kontrol edit dikonversi dari karakter Windows yang diatur ke set karakter OEM lalu kembali ke kumpulan karakter Windows. Ini memastikan konversi karakter yang tepat ketika aplikasi memanggil fungsi CharToOem untuk mengonversi string Windows dalam kontrol edit ke karakter OEM. ES_OEMCONVERT paling berguna untuk kontrol edit yang berisi nama file yang akan digunakan pada sistem file yang tidak mendukung Unicode.

Untuk kontrol edit multibaris dalam kotak dialog, gaya ES_WANTRETURN menyebabkan kontrol menyisipkan pengembalian gerbong saat pengguna menekan tombol ENTER saat memasukkan teks. Jika gaya ini tidak ditentukan, menekan tombol ENTER memiliki efek yang sama seperti menekan tombol dorong default dalam kotak dialog. Tanpa ES_WANTRETURN, pengguna harus menekan CTRL+ENTER untuk menyisipkan pengembalian pengangkutan. Untuk informasi tentang Wordwrap dan hentian baris, lihat Menangani Wordwrap dan Pemisah Baris.

Gaya Visual

Gaya ES_NOHIDESEL menyebabkan teks terpilih tetap disorot ketika kontrol edit tidak memiliki fokus. Tanpa gaya ini, teks yang dipilih kehilangan penyorotan saat kontrol kehilangan fokus.

Secara default, kontrol edit tidak memiliki batas. Untuk memberikannya, aplikasi dapat menggunakan gaya jendela WS_BORDER .

Untuk menggunakan gaya visual dengan kontrol edit, aplikasi harus menyertakan manifes dan harus memanggil InitCommonControls di awal program. Untuk informasi tentang gaya visual, lihat Gaya Visual. Untuk informasi tentang manifes, lihat Mengaktifkan Gaya Visual.

Buffer Teks

Sistem menyimpan teks kontrol edit dalam buffer dan menyalinnya ke kontrol, seperlunya.

Topik berikut membahas bagaimana sistem mengalokasikan dan menginisialisasi buffer dan mengubah karakteristiknya:

Mengalokasikan Buffer Teks

Saat sistem membuat kontrol edit, sistem secara otomatis membuat buffer teks, mengatur ukuran awalnya, dan meningkatkan ukuran seperlunya. Ukurannya bisa hingga batas yang telah ditentukan sebelumnya sekitar 32 kilobyte (KB) untuk kontrol edit baris tunggal. Karena batas ini dapat berubah, itu disebut batas lunak. Aplikasi dapat mengatur batas keras ke ukuran buffer dengan mengirim pesan EM_SETLIMITTEXT ke kontrol edit. Jika buffer melebihi salah satu batas, sistem mengirimkan aplikasi kode pemberitahuan EN_ERRSPACE . Aplikasi dapat mengambil batas teks saat ini dengan mengirim pesan EM_GETLIMITTEXT.

Sistem biasanya membuat buffer kontrol edit dalam kotak dialog, menggunakan memori di luar segmen data aplikasi. Aplikasi dapat menekan perilaku alokasi default ini dan membuat buffer dari timbunan lokalnya dengan menggunakan gaya DS_LOCALEDIT (lihat "Gaya Templat Kotak Dialog" di Tentang Kotak Dialog) saat membuat kontrol edit. Aplikasi yang menggunakan gaya DS_LOCALEDIT bertanggung jawab atas semua alokasi buffer. Untuk membuat alokasi awal, aplikasi dapat memanggil fungsi LocalAlloc dan meneruskan handel buffer yang dikembalikan ke kontrol edit dengan mengirimkannya pesan EM_SETHANDLE. Untuk membuat alokasi berikutnya (sebagai respons terhadap kode pemberitahuan EN_ERRSPACE , misalnya), aplikasi harus menyimpan konten buffer saat ini (jika perlu) dan mendapatkan buffer baru sebagai berikut.

Untuk menyimpan buffer saat ini dan mendapatkan yang baru, ikuti prosedur ini.

  1. Ambil handel memori yang saat ini dialokasikan untuk teks dalam kontrol edit multibaris dengan mengirim kontrol pesan EM_GETHANDLE .
  2. Bebaskan buffer dengan memanggil fungsi LocalFree.
  3. Dapatkan buffer baru (dan handel buffer) dengan memanggil LocalAlloc.
  4. Berikan handel buffer ke sistem dengan mengirim kontrol pesan EM_SETHANDLE .

Pesan EM_SETHANDLE dan EM_GETHANDLE hanya berlaku untuk kontrol pengeditan multibaris.

Aplikasi yang menggunakan perilaku alokasi default (yaitu, tidak menggunakan gaya DS_LOCALEDIT (lihat "Gaya Templat Kotak Dialog" di Tentang Kotak Dialog)) tidak boleh mengirim EM_SETHANDLE dan EM_GETHANDLE pesan ke kontrol edit.

Mengirim pesan EM_SETHANDLE memiliki beberapa efek samping: menghapus bendera batalkan (membuat pesan EM_CANUNDO mengembalikan nol), pesan menghapus bendera modifikasi (membuat pesan EM_GETMODIFY mengembalikan nol), dan menghapus ulang jendela kontrol edit.

Menginisialisasi Buffer Teks

Aplikasi dapat menginisialisasi atau menginisialisasi ulang buffer teks kontrol edit dengan memanggil fungsi SetDlgItemText. Aplikasi dapat mengambil konten buffer teks dengan memanggil fungsi GetDlgItemText.

Membuat Buffer Teks Baca-saja

Untuk setiap kontrol edit, sistem mempertahankan bendera baca-saja yang menunjukkan apakah teks kontrol adalah baca/tulis (default) atau baca-saja. Aplikasi dapat mengatur bendera baca/tulis atau bendera baca-saja untuk teks dengan mengirim kontrol pesan EM_SETREADONLY . Untuk menentukan apakah kontrol edit bersifat baca-saja, aplikasi dapat memanggil fungsi GetWindowLong menggunakan konstanta GWL_STYLE. Pesan EM_SETREADONLY berlaku untuk kontrol pengeditan satu baris dan multibaris.

Mengubah Persegi Pemformatan

Visibilitas teks kontrol edit diatur oleh dimensi persegi panjang jendelanya dan persegi panjang pemformatannya. Persegi panjang jendela adalah area klien dari jendela yang berisi kontrol edit. Persegi panjang pemformatan adalah konstruksi yang dikelola oleh sistem untuk memformat teks yang ditampilkan dalam persegi panjang jendela. Saat kontrol edit pertama kali ditampilkan, dua persegi panjang identik di layar. Aplikasi dapat membuat pemformatan persegi panjang lebih besar dari persegi jendela (sehingga membatasi visibilitas teks kontrol edit) atau lebih kecil dari persegi panjang jendela (sehingga membuat ruang kosong ekstra di sekitar teks).

Aplikasi dapat mengatur koordinat persegi panjang pemformatan kontrol edit dengan mengirimkannya pesan EM_SETRECT . Pesan EM_SETRECT juga secara otomatis menggambar ulang teks kontrol edit. Untuk membuat koordinat persegi panjang pemformatan tanpa menguras ulang teks kontrol, aplikasi dapat mengirim kontrol pesan EM_SETRECTNP . Untuk mengambil koordinat persegi panjang pemformatan, aplikasi dapat mengirim kontrol pesan EM_GETRECT. Pesan ini hanya berlaku untuk kontrol pengeditan multibaris.

Edit Pesan Pemberitahuan Kontrol

Pengguna membuat permintaan pengeditan dengan menggunakan keyboard dan mouse. Sistem mengirimkan setiap permintaan ke jendela induk kontrol edit dalam bentuk pesan WM_COMMAND. Pesan mencakup pengidentifikasi kontrol edit dalam kata berurutan rendah dari parameter wParam , handel kontrol edit dalam parameter lParam , dan kode pemberitahuan kontrol edit yang sesuai dengan tindakan pengguna dalam kata berurutan tinggi dari parameter wParam .

Aplikasi harus memeriksa kode pemberitahuan yang menyertai setiap pesan pemberitahuan dan merespons dengan tepat. Tabel berikut mencantumkan setiap kode pemberitahuan kontrol edit dan tindakan yang menghasilkannya.

Kode pemberitahuan Tindakan pengguna
EN_CHANGE Pengguna telah memodifikasi teks dalam kontrol edit. Sistem memperbarui tampilan sebelum mengirim kode pemberitahuan ini (tidak seperti EN_UPDATE).
EN_ERRSPACE Kontrol edit tidak dapat mengalokasikan cukup memori untuk memenuhi permintaan tertentu.
EN_HSCROLL Pengguna telah mengklik bilah gulir horizontal kontrol edit. Sistem mengirim kode pemberitahuan ini sebelum memperbarui layar.
EN_KILLFOCUS Pengguna telah memilih kontrol lain.
EN_MAXTEXT Saat menyisipkan teks, pengguna telah melebihi jumlah karakter yang ditentukan untuk kontrol edit. Penyisipan telah dipotong. Kode pemberitahuan ini juga dikirim baik ketika kontrol edit tidak memiliki gaya ES_AUTOHSCROLL dan jumlah karakter yang akan disisipkan melebihi lebar kontrol edit atau ketika kontrol edit tidak memiliki gaya ES_AUTOVSCROLL dan jumlah total baris yang akan dimasukkan melebihi tinggi kontrol edit.
EN_SETFOCUS Pengguna telah memilih kontrol edit ini.
EN_UPDATE Pengguna telah mengubah teks dalam kontrol edit dan sistem akan menampilkan teks baru. Sistem mengirim kode pemberitahuan ini setelah memformat teks, tetapi sebelum menampilkannya, sehingga aplikasi dapat mengubah ukuran jendela kontrol edit.
EN_VSCROLL Pengguna telah mengklik bilah gulir vertikal kontrol edit atau telah menggulir roda mouse di atas kontrol edit. Sistem mengirim kode pemberitahuan ini sebelum memperbarui layar.
EN_SEARCHWEB Pengguna telah mengklik entri menu konteks 'Cari web'. Sistem mengirimkan pemberitahuan ini setelah meluncurkan browser.

Selain itu, sistem mengirim pesan WM_CTLCOLOREDIT ke jendela induk kontrol edit sebelum kontrol edit digambar. Pesan ini berisi handel konteks tampilan kontrol edit (DC) dan handel jendela anak. Jendela induk dapat menggunakan handel ini untuk mengubah teks kontrol edit dan warna latar belakang.

Edit Kontrol Pemrosesan Pesan Default

Prosedur jendela untuk kelas jendela kontrol edit yang telah ditentukan sebelumnya melakukan pemrosesan default untuk semua pesan yang tidak diproses oleh prosedur kontrol pengeditan. Saat prosedur kontrol edit mengembalikan FALSE untuk pesan apa pun, prosedur jendela yang telah ditentukan sebelumnya memeriksa pesan dan melakukan tindakan default berikut.

Pesan Tindakan default
EM_CANUNDO Mengembalikan TRUE jika operasi kontrol edit dapat dibatalkan.
EM_CHARFROMPOS Mengembalikan indeks karakter dan indeks garis karakter terdekat dengan titik yang ditentukan.
EM_EMPTYUNDOBUFFER Mengentalkan buffer urungkan dan mengatur bendera batalkan yang diambil oleh pesan EM_CANUNDO ke FALSE. Sistem secara otomatis menghapus bendera batalkan setiap kali kontrol edit menerima pesan WM_SETTEXT atau EM_SETHANDLE.
EM_FMTLINES Menambahkan atau menghapus karakter pemisah garis lunak (dua pengangkutan kembali dan umpan baris) ke akhir garis yang dibungkus dalam kontrol edit multibaris. Ini tidak diproses oleh kontrol edit baris tunggal.
EM_GETFIRSTVISIBLELINE Mengembalikan indeks berbasis nol dari karakter pertama yang terlihat dalam kontrol edit baris tunggal atau indeks berbasis nol dari baris paling atas yang terlihat dalam kontrol pengeditan multibaris.
EM_GETHANDLE Mengembalikan handel yang mengidentifikasi buffer yang berisi teks kontrol edit multibaris. Ini tidak diproses oleh kontrol edit baris tunggal.
EM_GETLIMITTEXT Mengembalikan batas teks saat ini, dalam karakter.
EM_GETLINE Menyalin karakter dalam kontrol edit baris tunggal ke buffer dan mengembalikan jumlah karakter yang disalin. Dalam kontrol edit multibaris, mengambil baris teks dari kontrol dan mengembalikan jumlah karakter yang disalin.
EM_GETLINECOUNT Mengembalikan jumlah baris dalam kontrol edit.
EM_GETMARGINS Mengembalikan lebar margin kiri dan kanan.
EM_GETMODIFY Mengembalikan bendera yang menunjukkan apakah konten kontrol edit telah dimodifikasi.
EM_GETPASSWORDCHAR Mengembalikan karakter yang digunakan kontrol pengeditan bersama dengan gaya ES_PASSWORD.
EM_GETRECT Mengembalikan koordinat persegi panjang pemformatan dalam kontrol edit.
EM_GETSEL Mengembalikan posisi karakter awal dan akhir dari pilihan saat ini dalam kontrol edit.
EM_GETTHUMB Mengembalikan posisi kotak gulir di bilah gulir vertikal dalam kontrol edit multibaris.
EM_GETWORDBREAKPROC Mengembalikan alamat fungsi Wordwrap saat ini dalam kontrol edit.
EM_LINEFROMCHAR Mengembalikan jumlah baris berbasis nol dalam kontrol edit multibaris yang berisi indeks karakter tertentu. Pesan ini adalah kebalikan dari pesan EM_LINEINDEX. Ini tidak diproses oleh kontrol edit baris tunggal.
EM_LINEINDEX Mengembalikan karakter baris dalam kontrol edit multibaris. Pesan ini adalah kebalikan dari pesan EM_LINEFROMCHAR. Ini tidak diproses oleh kontrol edit baris tunggal.
EM_LINELENGTH Mengembalikan panjang, dalam karakter, dari kontrol edit baris tunggal. Dalam kontrol edit multibaris, mengembalikan panjang, dalam karakter, dari baris tertentu.
EM_LINESCROLL Menggulir teks secara vertikal dalam kontrol edit satu baris atau secara horizontal dalam kontrol edit multibaris (saat kontrol memiliki gaya ES_LEFT). Parameter lParam menentukan jumlah baris yang akan digulir secara vertikal, dimulai dari baris saat ini. Parameter wParam menentukan jumlah karakter yang akan digulir secara horizontal, dimulai dari karakter saat ini.
EM_POSFROMCHAR Mengembalikan koordinat klien dari karakter yang ditentukan.
EM_REPLACESEL Mengganti pilihan saat ini dengan teks dalam buffer yang disediakan aplikasi, mengirim jendela induk EN_UPDATE dan EN_CHANGE kode pemberitahuan, dan memperbarui buffer urungkan.
EM_SCROLL Menggulir teks secara vertikal dalam kontrol edit multibaris. Pesan ini setara dengan mengirim pesan WM_VSCROLL ke kontrol edit. Ini tidak diproses oleh kontrol edit baris tunggal.
EM_SCROLLCARET Menggulir tanda sisipan ke dalam tampilan dalam kontrol edit.
EM_SETFONT Tidak didukung.
EM_SETHANDLE Mengatur handel ke memori yang digunakan sebagai buffer teks, mengolah buffer urungkan, mengatur ulang posisi gulir ke nol, dan menggambar ulang jendela.
EM_SETLIMITTEXT Mengatur jumlah maksimum karakter yang mungkin dimasukkan pengguna dalam kontrol edit. Untuk kontrol edit baris tunggal, nilai ini 0x7FFFFFFE atau nilai parameter wParam , mana pun yang lebih kecil. Untuk kontrol edit multibaris, nilai ini adalah 1 atau nilai parameter wParam , mana yang lebih kecil.
EM_SETMARGINS Mengatur lebar margin kiri dan kanan, dan menggambar ulang kontrol edit untuk mencerminkan margin baru.
EM_SETMODIFY Mengatur atau menghapus bendera modifikasi untuk menunjukkan apakah kontrol edit telah dimodifikasi.
EM_SETPASSWORDCHAR Menentukan karakter yang digunakan kontrol pengeditan bersama dengan gaya ES_PASSWORD.
EM_SETREADONLY Mengatur atau menghapus gaya baca-saja (ES_READONLY) dalam kontrol edit.
EM_SETRECT Mengatur persegi panjang pemformatan untuk kontrol edit multibaris dan menggambar ulang jendela. Ini tidak diproses oleh kontrol edit baris tunggal.
EM_SETRECTNP Menyetel persegi panjang pemformatan untuk kontrol edit multibaris tetapi tidak menggambar ulang jendela. Ini tidak diproses oleh kontrol edit baris tunggal.
EM_SETSEL Memilih rentang karakter dalam kontrol edit dengan mengatur posisi awal dan akhir yang akan dipilih.
EM_SETTABSTOPS Mengatur posisi tab-stop di kontrol edit multibaris. Ini tidak diproses oleh kontrol edit baris tunggal.
EM_SETWORDBREAKPROC Mengganti fungsi Wordwrap default dengan fungsi Wordwrap yang ditentukan aplikasi.
EM_UNDO Menghapus teks apa pun yang baru saja disisipkan atau menyisipkan karakter yang dihapus dan mengatur pilihan ke teks yang disisipkan. Jika perlu, kirim kode pemberitahuan EN_UPDATE dan EN_CHANGE ke jendela induk.
WM_CHAR Menulis karakter ke kontrol edit baris tunggal dan mengirim kode pemberitahuan EN_UPDATE dan EN_CHANGE ke jendela induk. Menulis karakter ke kontrol edit multibaris. Menangani kunci akselerator untuk fungsi standar, seperti CTRL+C untuk penyalinan dan CTRL+V untuk penempelan. Dalam kontrol edit multibaris, juga memproses tab, dan penekanan tombol CTRL+TAB untuk berpindah di antara kontrol dalam kotak dialog dan untuk menyisipkan tab ke kontrol edit multibaris. Menggunakan fungsi MessageBeep untuk karakter ilegal.
WM_CLEAR Menghapus pilihan saat ini, jika ada, dalam kontrol edit. Jika tidak ada pilihan saat ini, menghapus karakter di sebelah kanan tanda sisipan. Jika pengguna menekan tombol SHIFT, ini memotong pilihan ke clipboard, atau menghapus karakter di sebelah kiri tanda sisipan ketika tidak ada pilihan. Jika pengguna menekan tombol CTRL, ini akan menghapus pilihan, atau menghapus ke akhir baris saat tidak ada pilihan.
WM_COPY Menyalin teks ke clipboard kecuali gaya ES_PASSWORD, dalam hal ini pesan mengembalikan nol.
WM_CREATE Membuat kontrol edit dan memberi tahu jendela induk dengan TRUE untuk keberhasilan atau 1 untuk kegagalan.
WM_CUT Memotong pilihan ke clipboard, atau menghapus karakter di sebelah kiri kursor jika tidak ada pilihan.
WM_ENABLE Menyebabkan persegi panjang digambarkan ulang dalam warna abu-abu untuk kontrol edit baris tunggal. Mengembalikan status diaktifkan untuk kontrol edit satu baris dan multibaris.
WM_ERASEBKGND Mengisi jendela kontrol edit multibaris dengan warna kontrol edit saat ini.
WM_GETDLGCODE Mengembalikan nilai berikut: DLGC_WANTCHARS, DLGC_HASSETSEL, dan DLGC_WANTARROWS. Dalam kontrol pengeditan multibaris, kontrol juga mengembalikan DLGC_WANTALLKEYS. Jika pengguna menekan ALT+BACKSPACE, pengguna juga mengembalikan DLGC_WANTMESSAGE.
WM_GETFONT Mengembalikan handel font yang digunakan oleh kontrol, atau NULL jika kontrol menggunakan font sistem.
WM_GETTEXT Menyalin jumlah karakter yang ditentukan ke buffer dan mengembalikan jumlah karakter yang disalin.
WM_GETTEXTLENGTH Mengembalikan panjang, dalam karakter, teks dalam kontrol edit. Panjangnya tidak termasuk karakter null-terminating.
WM_HSCROLL Menggulir teks dalam kontrol edit multibaris secara horizontal dan menangani pergerakan kotak gulir.
WM_KEYDOWN Melakukan pemrosesan standar kode kunci virtual.
WM_KILLFOCUS Menghapus fokus keyboard dari jendela kontrol edit, menghancurkan tanda sisipan, menyembunyikan pilihan saat ini, dan memberi tahu jendela induk bahwa kontrol edit telah kehilangan fokus.
WM_LBUTTONDBLCLK Menghapus pilihan saat ini dan memilih kata di bawah kursor. Jika tombol SHIFT tertekan, perluas pilihan ke kata di bawah kursor.
WM_LBUTTONDOWN Mengubah titik penyisipan saat ini. Jika tombol SHIFT tertekan, perluas pilihan ke posisi kursor. Dalam kontrol edit multibaris, juga mengatur timer untuk menggulir secara otomatis saat pengguna menahan tombol mouse di luar jendela kontrol edit multibaris.
WM_LBUTTONUP Melepaskan tangkapan mouse dan mengatur titik penyisipan teks dalam kontrol edit baris tunggal. Dalam kontrol edit multibaris, juga mengakhiri timer yang diatur dalam pesan WM_LBUTTONDOWN.
WM_MOUSEMOVE Mengubah pilihan saat ini dalam kontrol edit baris tunggal, jika tombol mouse tidak berfungsi. Dalam kontrol edit multibaris, juga mengatur timer untuk menggulir secara otomatis jika pengguna menahan tombol mouse di luar jendela kontrol edit multibaris.
WM_NCCREATE Penunjuk ke struktur CREATESTRUCT untuk jendela. Pesan ini dikirim ke pesan WM_CREATE ketika jendela pertama kali dibuat.
WM_NCDESTROY Membebaskan semua memori yang terkait dengan jendela kontrol edit, termasuk buffer teks, buffer urungkan, buffer tab-stop, dan sikat sorotan.
WM_PAINT Menghapus latar belakang, mengisi jendela dengan warna jendela kontrol edit saat ini, menggambar batas (jika ada), mengatur font dan menggambar teks apa pun, dan memperlihatkan tanda sisipan teks.
WM_PASTE Menempelkan teks dari clipboard ke jendela kontrol edit pada posisi tanda sisipan.
WM_SETFOCUS Mengatur fokus keyboard dari jendela kontrol edit (memperlihatkan pilihan saat ini, jika disembunyikan, dan membuat tanda sisipan).
WM_SETFONT Mengatur font dan secara opsional menggambar ulang kontrol edit.
WM_SETTEXT Menyalin teks ke kontrol edit baris tunggal, memberi tahu jendela induk ketika memori tidak mencukupi, mengolah buffer urungkan, dan mengirim kode pemberitahuan EN_UPDATE dan EN_CHANGE ke jendela induk. Dalam kontrol edit multibaris, juga rewrap baris (jika perlu) dan mengatur posisi gulir.
WM_SIZE Mengatur ukuran jendela kontrol edit, memastikan bahwa ukuran mengakomodasi tinggi dan lebar karakter.
WM_SYSCHAR Mengembalikan TRUE jika pengguna menekan ALT+BACKSPACE; jika tidak, tidak mengambil tindakan.
WM_SYSKEYDOWN Membatalkan tindakan terakhir jika pengguna menekan ALT+BACKSPACE; jika tidak, tidak mengambil tindakan.
WM_TIMER Menggulir teks di jendela kontrol edit jika pengguna menahan tombol mouse di luar jendela kontrol edit multibaris.
WM_UNDO Menghapus teks apa pun yang baru saja disisipkan atau menyisipkan karakter yang dihapus dan mengatur pilihan ke teks yang disisipkan. Jika perlu, kirim kode pemberitahuan EN_UPDATE dan EN_CHANGE ke jendela induk.
WM_VSCROLL Menggulir kontrol edit multibaris secara vertikal dan menangani pergerakan kotak gulir. Ini tidak diproses oleh kontrol edit baris tunggal.

Prosedur jendela kontrol edit yang telah ditentukan sebelumnya meneruskan semua pesan lain ke fungsi DefWindowProc untuk pemrosesan default.