Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
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.
- Fitur Kontrol Mengedit
- Pengeditan Tipe dan Gaya Kontrol
- Buffer Teks
- Mengubah Kotak Pemformatan
- Pesan Notifikasi Kontrol Edit
- Kontrol Pengeditan Pemrosesan Pesan Default
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.
- Ambillah handle dari memori yang saat ini dialokasikan untuk teks dalam kontrol edit multibaris dengan mengirimkan pesan EM_GETHANDLE ke kontrol tersebut.
- Bebaskan buffer dengan memanggil fungsiLocalFree.
- Dapatkan buffer baru (dan handle buffer) dengan cara memanggil LocalAlloc.
- 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.