Bagikan melalui


Tentang Kontrol Pengeditan

Kontrol pengeditan 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 set karakter Unicode dan ANSI, lihat Unicode dan Set Karakter.

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

Topik berikut dibahas dalam gambaran umum ini.

Edit Fitur Kontrol

Saat dipilih, kontrol edit menampilkan kursor berkedip yang menunjukkan posisi 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 pengeditan, lihat Pesan Pemberitahuan Kontrol Pengeditan. Jendela induk dapat mengirim pesan ke kontrol edit dalam kotak dialog dengan memanggil fungsiSendDlgItemMessage. Beberapa pesan juga dapat dikirim dengan menggunakan makro yang telah ditentukan sebelumnya.

Sistem ini menyediakan kontrol edit baris tunggal dan kontrol pengeditan multibaris. Kontrol edit berasal dari 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 pengendalian edit, lihat Gaya Pengendalian Edit.

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 membungkus.

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

ES_AUTOHSCROLL diabaikan oleh kontrol edit multibaris yang tidak sejajar ke kiri. Kontrol pengeditan multibaris yang rata tengah 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 kiri, tengah, atau kanan, masing-masing. Kontrol pengeditan multibaris rata kanan dan tengah tidak boleh memiliki gaya ES_AUTOHSCROLL; artinya, kontrol ini tidak dapat digulirkan 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 fungsiCharToOem 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 pemutusan baris, lihat Menangani Wordwrap dan Pemutusan 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 memberikan satu gaya tersebut, 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 Visual Styles. Untuk informasi tentang manifes, lihat Mengaktifkan Gaya Visual.

Penyangga 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 heap lokalnya dengan menggunakan gaya DS_LOCALEDIT (lihat "Gaya Templat Kotak Dialog" di Tentang Kotak Dialog) ketika membuat kontrol edit. Aplikasi yang menggunakan gaya DS_LOCALEDIT bertanggung jawab atas semua alokasi buffer. Untuk membuat alokasi awal, aplikasi dapat memanggil fungsiLocalAlloc dan meneruskan handle buffer yang dikembalikan ke kontrol pengeditan 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. Ambillah handle dari memori yang saat ini dialokasikan untuk teks dalam kontrol edit multibaris dengan mengirimkan pesan EM_GETHANDLE ke kontrol tersebut.
  2. Bebaskan buffer dengan memanggil fungsiLocalFree.
  3. Dapatkan buffer baru (dan handle buffer) dengan cara memanggil LocalAlloc.
  4. Berikan handle buffer ke sistem dengan mengirimkan 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 pesan EM_SETHANDLE dan EM_GETHANDLE ke kontrol edit.

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

Menginisialisasi Penampung Teks

Aplikasi dapat menginisialisasi atau menginisialisasi ulang buffer teks kontrol edit dengan memanggil fungsiSetDlgItemText. Aplikasi dapat mengambil konten buffer teks dengan memanggil fungsiGetDlgItemText.

Membuat Buffer Teks Hanya-baca

Untuk setiap kontrol edit, sistem mempertahankan penanda baca-saja yang menandakan 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 pengguna dari jendela yang berisi kontrol pengeditan. 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 menetapkan koordinat persegi panjang pemformatan tanpa menarik ulang teks dari kontrol, aplikasi dapat mengirimkan 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 urutan rendah dari parameter wParam, pegangan kontrol edit di parameter lParam, dan kode pemberitahuan kontrol edit yang sesuai dengan tindakan pengguna pada kata urutan 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 dipangkas. 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.
PEMBARUAN_EN 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.

Pengaturan Default Pemrosesan Pesan

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 pengeditan dapat dibatalkan.
EM_CHARFROMPOS Mengembalikan indeks karakter dan indeks garis karakter terdekat dengan titik yang ditentukan.
EM_EMPTYUNDOBUFFER Mengosongkan buffer urung dan mengatur penanda urung yang diperoleh dari 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 kali pengembalian kereta dan satu kali umpan baris) ke akhir baris yang terbungkus dalam kontrol edit multibaris. Ini tidak diproses oleh kontrol pengeditan satu baris.
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 pegangan yang mengidentifikasi buffer yang berisi teks kontrol pengeditan 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 oleh 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 pengeditan satu baris.
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 Menggantikan pemilihan saat ini dengan teks dalam buffer yang disediakan aplikasi, mengirim ke jendela induk EN_UPDATE dan EN_CHANGE kode notifikasi, dan memperbarui buffer pembatalan.
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 kursor agar terlihat dalam kontrol pengeditan.
EM_SETFONT Tidak didukung.
EM_SETHANDLE Mengatur handle ke memori yang digunakan sebagai buffer teks, mengosongkan 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 pengeditan baris tunggal, nilai ini adalah 0x7FFFFFFE atau nilai parameter wParam, tergantung mana 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 edit dalam kombinasi 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 pengeditan satu baris.
EM_SETRECTNP Menyetel persegi panjang pemformatan untuk kontrol edit multibaris tetapi tidak menggambar ulang jendela. Ini tidak diproses oleh kontrol pengeditan satu baris.
EM_SETSEL Memilih rentang karakter dalam kontrol edit dengan mengatur posisi awal dan akhir yang akan dipilih.
EM_SETTABSTOPS Mengatur posisi penghentian tab di kontrol edit multibaris. Hal ini tidak diproses oleh kontrol penyuntingan satu baris.
EM_SETWORDBREAKPROC Mengganti fungsi Wordwrap default dengan fungsi Wordwrap yang ditentukan aplikasi.
EM_UNDO Menghapus teks yang baru saja disisipkan atau menyisipkan kembali karakter yang dihapus, lalu mengatur pilihan ke teks yang telah disisipkan. Jika perlu, mengirim 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 pengontrol mengedit multibaris. Menangani kunci akselerator untuk fungsi standar, seperti CTRL+C untuk penyalinan dan CTRL+V untuk penempelan. Dalam kontrol edit multibaris, juga memproses penekanan tombol TAB dan 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 kursor. Jika pengguna menekan tombol SHIFT, ini menyalin pilihan ke clipboard, atau menghapus karakter di sebelah kiri kursor 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 jika stylenya adalah ES_PASSWORD, maka pesan tersebut 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 handle 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, dari teks dalam kontrol edit. Panjangnya tidak termasuk karakter akhir null.
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 pengeditan multibaris, juga menghentikan 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 pengeditan, termasuk buffer teks, buffer pembatalan, buffer tab-stop, dan kuas penyorot.
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, mengosongkan buffer urung, dan mengirim kode pemberitahuan EN_UPDATE dan EN_CHANGE ke jendela induk. Dalam kontrol edit multibaris, juga mengatur ulang baris (jika perlu) dan mengatur posisi gulirnya.
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 yang baru disisipkan atau menyisipkan karakter yang telah dihapus dan mengatur seleksi ke teks yang disisipkan. Jika perlu, mengirim kode pemberitahuan EN_UPDATE dan EN_CHANGE ke jendela induk.
WM_VSCROLL Menggulir kontrol pengeditan multibaris secara vertikal dan mengelola pergerakan kotak gulir. Ini tidak diproses oleh kontrol edit satu baris.

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