Bagikan melalui


Tentang Kontrol Tampilan Pohon

Kontrol tampilan pohon adalah jendela yang menampilkan daftar item hierarkis, seperti judul dalam dokumen, entri dalam indeks, atau file dan direktori pada disk. Setiap item terdiri dari label dan gambar bitmapp opsional, dan setiap item dapat memiliki daftar subitem yang terkait dengannya. Dengan mengklik item, pengguna dapat memperluas atau menciutkan daftar subitem terkait.

Ilustrasi berikut menunjukkan kontrol tampilan pohon sederhana dengan simpul akar, simpul yang diperluas, dan simpul yang diciutkan. Kontrol menggunakan satu bitmap untuk item terpilih dan bitmap lain untuk item lainnya.

screen shot showing five nodes in a hierarchy; the text of one node is selected, but nodes are not linked to each other by lines

Setelah membuat kontrol tampilan pohon, Anda menambahkan, menghapus, menyusun, atau memanipulasi item dengan mengirim pesan ke kontrol. Setiap pesan memiliki satu atau beberapa makro terkait yang dapat Anda gunakan alih-alih mengirim pesan secara eksplisit.

Topik berikut dibahas di bagian ini.

Gaya Tampilan Pohon

Gaya tampilan pohon mengatur aspek tampilan kontrol tampilan pohon. Anda mengatur gaya awal saat membuat kontrol tampilan pohon. Anda dapat mengambil dan mengubah gaya setelah membuat kontrol tampilan pohon dengan menggunakan fungsi GetWindowLong dan SetWindowLong.

Gaya TVS_HASLINES meningkatkan representasi grafik hierarki kontrol tampilan pohon dengan menggambar garis yang menautkan item turunan ke item induknya, seperti yang diperlihatkan dalam ilustrasi berikut.

screen shot showing the previous arrangement, but with lines joining the nodes; the first line descends from the root node

Dengan sendirinya, gaya ini tidak menggambar garis di akar hierarki. Untuk melakukannya, Anda perlu menggabungkan gaya TVS_HASLINES dan TVS_LINESATROOT. Hasilnya diperlihatkan dalam ilustrasi berikut.

screen shot showing the previous arrangement, but with an additional horizontal line leading to the root node

Pengguna dapat memperluas atau menciutkan daftar item anak induk dengan mengklik dua kali item induk. Kontrol tampilan pohon yang memiliki gaya TVS_HASBUTTONS menambahkan tombol ke sisi kiri setiap item induk. Pengguna dapat mengklik tombol sekali alih-alih mengklik dua kali item induk untuk memperluas atau menciutkan turunan. TVS_HASBUTTONS tidak menambahkan tombol ke item di akar hierarki. Untuk melakukannya, Anda harus menggabungkan TVS_HASLINES, TVS_LINESATROOT, dan TVS_HASBUTTONS. Kombinasi gaya ini diperlihatkan dalam ilustrasi berikut.

screen shot showing the previous arrangement, but with expand/collapse buttons at each vertex of two lines

Gaya TVS_CHECKBOXES membuat kotak centang di samping setiap item. Jika Anda ingin menggunakan gaya kotak centang, Anda harus mengatur gaya TVS_CHECKBOXES (dengan SetWindowLong) setelah Anda membuat kontrol tampilan pohon dan sebelum mengisi pohon. Jika tidak, kotak centang mungkin tampak tidak dicentang, tergantung pada masalah waktu. Ilustrasi berikut ini memperlihatkan gaya kotak centang.

screen shot showing the previous arrangement, but with a checkbox next to each node; two of the checkboxes are selected

Gaya TVS_FULLROWSELECT menyebabkan sorotan pilihan diperluas di atas lebar penuh kontrol, bukan hanya di atas item itu sendiri. Ilustrasi berikut menunjukkan gaya ini.

screen shot showing the original arrangement of five nodes with no lines, but the selection highlight extends the full width of the control

Gaya TVS_EDITLABELS memungkinkan pengguna mengedit label item tampilan pohon. Untuk informasi selengkapnya tentang mengedit label, lihat Pengeditan Label Tampilan Pohon.

Untuk informasi selengkapnya tentang gaya ini dan gaya lainnya, lihat Gaya Jendela Kontrol Tampilan Pohon.

Item Induk dan Turunan

Item apa pun dalam kontrol tampilan pohon dapat memiliki daftar subitem—yang disebut item turunan—yang terkait dengannya. Item yang memiliki satu atau beberapa item turunan disebut item induk. Item anak ditampilkan di bawah item induknya dan diindentasi untuk menunjukkan bahwa item tersebut berada di bawah induk. Item yang tidak memiliki induk muncul di bagian atas hierarki dan disebut item akar.

Untuk menambahkan item ke kontrol tampilan pohon, kirim pesan TVM_INSERTITEM ke kontrol. Pesan mengembalikan handel ke jenis HTREEITEM, yang secara unik mengidentifikasi item. Saat menambahkan item, Anda harus menentukan handel ke item induk item baru. Jika Anda menentukan null atau nilai TVI_ROOT alih-alih handel item induk dalam struktur TVINSERTSTRUCT , item ditambahkan sebagai item root.

Pada waktu tertentu, status daftar item induk item anak dapat diperluas atau diciutkan. Ketika status diperluas, item turunan ditampilkan di bawah item induk. Ketika diciutkan, item anak tidak ditampilkan. Daftar secara otomatis beralih antara status yang diperluas dan diciutkan saat pengguna mengklik dua kali item induk atau, jika induk memiliki gaya TVS_HASBUTTONS , ketika pengguna mengklik tombol yang terkait dengan item induk. Aplikasi dapat memperluas atau menciutkan item anak dengan menggunakan pesan TVM_EXPAND.

Kontrol tampilan pohon mengirimkan pesan pemberitahuan TVN_ITEMEXPANDING jendela induk ketika daftar item turunan item induk akan diperluas atau diciutkan. Pemberitahuan memberi aplikasi kesempatan untuk mencegah perubahan atau untuk mengatur atribut apa pun dari item induk yang bergantung pada status daftar item anak. Setelah mengubah status daftar, kontrol tampilan pohon mengirimkan jendela induk pesan pemberitahuan TVN_ITEMEXPANDED .

Ketika daftar item anak diperluas, item tersebut diindentasi relatif terhadap item induk. Anda dapat mengatur jumlah indentasi dengan menggunakan pesan TVM_SETINDENT atau mengambil jumlah saat ini dengan menggunakan pesan TVM_GETINDENT.

Kontrol tampilan pohon menggunakan memori yang dialokasikan dari timbunan proses yang membuat kontrol tampilan pohon. Jumlah maksimum item dalam tampilan pohon didasarkan pada jumlah memori yang tersedia dalam timbunan.

Label Item

Anda biasanya menentukan teks label item saat menambahkan item ke kontrol tampilan pohon. Pesan TVM_INSERTITEM menyertakan struktur TVITEM yang menentukan properti item, termasuk string yang berisi teks label.

Kontrol tampilan pohon mengalokasikan memori untuk menyimpan setiap item; teks label item mengambil sebagian besar memori ini. Jika aplikasi Anda mempertahankan salinan string dalam kontrol tampilan pohon, Anda dapat mengurangi persyaratan memori kontrol dengan menentukan nilai LPSTR_TEXTCALLBACK di anggota pszText TVITEM alih-alih meneruskan string aktual ke tampilan pohon. Menggunakan LPSTR_TEXTCALLBACK menyebabkan kontrol tampilan pohon mengambil teks label item dari jendela induk setiap kali item perlu digambar ulang. Untuk mengambil teks, kontrol tampilan pohon mengirimkan pesan pemberitahuan TVN_GETDISPINFO , yang mencakup alamat struktur NMTVDISPINFO . Jendela induk harus mengisi anggota struktur yang disertakan yang sesuai.

Pengeditan Label Tampilan Pohon

Pengguna dapat langsung mengedit label item dalam kontrol tampilan pohon yang memiliki gaya TVS_EDITLABELS. Pengguna mulai mengedit dengan mengklik label item yang memiliki fokus. Aplikasi mulai mengedit dengan menggunakan pesan TVM_EDITLABEL. Kontrol tampilan pohon memberi tahu jendela induk saat pengeditan dimulai dan kapan dibatalkan atau selesai. Saat pengeditan selesai, jendela induk bertanggung jawab untuk memperbarui label item, jika sesuai.

Saat pengeditan label dimulai, kontrol tampilan pohon mengirimkan jendela induknya pesan pemberitahuan TVN_BEGINLABELEDIT . Dengan memproses pemberitahuan ini, aplikasi dapat memungkinkan pengeditan beberapa label dan mencegah pengeditan orang lain. Mengembalikan nol memungkinkan pengeditan, dan mengembalikan bukan nol mencegahnya.

Saat pengeditan label dibatalkan atau selesai, kontrol tampilan pohon mengirimkan jendela induknya pesan pemberitahuan TVN_ENDLABELEDIT . Parameter lParam adalah alamat struktur NMTVDISPINFO . Parameter item adalah struktur TVITEM yang mengidentifikasi item dan menyertakan teks yang diedit. Jendela induk bertanggung jawab untuk memperbarui label item jika ingin menyimpan label baru. Anggota pszText TVITEM adalah nol jika pengeditan dibatalkan.

Selama pengeditan label, biasanya sebagai respons terhadap pesan pemberitahuan TVN_BEGINLABELEDIT , Anda dapat mengambil handel ke kontrol edit yang digunakan untuk pengeditan label dengan menggunakan pesan TVM_GETEDITCONTROL . Anda dapat mengirim kontrol edit pesan EM_SETLIMITTEXT untuk membatasi jumlah teks yang dapat dimasukkan pengguna atau subkelas kontrol edit untuk mencegat dan membuang karakter yang tidak valid. Namun, perhatikan bahwa kontrol edit hanya ditampilkan setelah TVN_BEGINLABELEDIT dikirim.

Posisi Item Tampilan Pohon

Posisi awal item diatur saat item ditambahkan ke kontrol tampilan pohon dengan menggunakan pesan TVM_INSERTITEM. Pesan menyertakan struktur TVINSERTSTRUCT yang menentukan handel ke item induk dan handel ke item setelah item baru akan disisipkan. Handel kedua harus mengidentifikasi item anak dari induk tertentu atau salah satu nilai ini: TVI_FIRST, TVI_LAST, atau TVI_SORT.

Saat TVI_FIRST atau TVI_LAST ditentukan, kontrol tampilan pohon menempatkan item baru di awal atau akhir daftar item anak item induk yang diberikan. Saat TVI_SORT ditentukan, kontrol tampilan pohon menyisipkan item baru ke dalam daftar item turunan dalam urutan alfabet berdasarkan teks label item.

Anda dapat menempatkan daftar item anak induk dalam urutan alfabet dengan menggunakan pesan TVM_SORTCHILDREN. Pesan menyertakan parameter yang menentukan apakah semua tingkat item turunan yang turun dari item induk yang diberikan juga diurutkan dalam urutan alfabet.

Pesan TVM_SORTCHILDRENCB memungkinkan Anda mengurutkan item turunan berdasarkan kriteria yang Anda tentukan. Saat Anda menggunakan pesan ini, Anda menentukan fungsi panggilan balik yang ditentukan aplikasi yang dapat dipanggil kontrol tampilan pohon setiap kali urutan relatif dua item anak perlu diputuskan. Fungsi panggilan balik menerima dua nilai yang ditentukan aplikasi 32-bit untuk item yang dibandingkan dan nilai 32-bit ketiga yang Anda tentukan saat mengirim TVM_SORTCHILDRENCB.

Gambaran Umum Status Item Tampilan Pohon

Setiap item dalam kontrol tampilan pohon memiliki status saat ini. Informasi status untuk setiap item mencakup sekumpulan bendera bit serta indeks daftar gambar yang menunjukkan gambar status item dan gambar overlay. Bendera bit menunjukkan apakah item dipilih, dinonaktifkan, diperluas, dan sebagainya. Untuk sebagian besar, kontrol tampilan pohon secara otomatis mengatur status item untuk mencerminkan tindakan pengguna, seperti pemilihan item. Namun, Anda juga dapat mengatur status item dengan menggunakan pesan TVM_SETITEM, dan Anda dapat mengambil status item saat ini dengan menggunakan pesan TVM_GETITEM. Untuk daftar lengkap status item, lihat Status Item Kontrol Tampilan Pohon.

Status item saat ini ditentukan oleh anggota status struktur TVITEM. Kontrol tampilan pohon mungkin mengubah status item untuk mencerminkan tindakan pengguna, seperti memilih item atau mengatur fokus ke item. Selain itu, aplikasi mungkin mengubah status item untuk menonaktifkan atau menyembunyikan item atau menentukan gambar overlay atau gambar status.

Saat Anda menentukan atau mengubah status item, anggota statemask TVITEM menentukan bit status mana yang akan diatur, dan anggota status berisi nilai baru untuk bit tersebut.

Untuk mengatur gambar overlay item, statemask harus menyertakan nilai TVIS_OVERLAYMASK, dan status harus menyertakan indeks berbasis satu gambar overlay yang digeser ke kiri 8 bit dengan menggunakan makro INDEXTOOVERLAYMASK. Indeks bisa nol untuk menentukan tidak ada gambar overlay.

Gambar status ditampilkan di samping ikon item untuk menunjukkan status yang ditentukan aplikasi. Gambar status terkandung dalam daftar gambar status yang ditentukan dengan mengirim pesan TVM_SETIMAGELIST. Untuk mengatur gambar status item, sertakan nilai TVIS_STATEIMAGEMASK dalam anggota statemask struktur TVITEM. Bit 12 hingga 15 dari anggota status struktur menentukan indeks dalam daftar gambar status gambar yang akan digambar.

Untuk mengatur indeks gambar status, gunakan INDEXTOSTATEIMAGEMASK. Makro ini mengambil indeks, dan mengatur bit 12 hingga 15 dengan tepat. Untuk menunjukkan bahwa item tidak memiliki gambar status, atur indeks ke nol. Konvensi ini berarti bahwa gambar nol dalam daftar gambar status tidak dapat digunakan sebagai gambar status. Untuk mengisolasi bit 12 hingga 15 anggota status, gunakan masker TVIS_STATEIMAGEMASK. Untuk informasi selengkapnya tentang overlay dan gambar status, lihat Daftar Gambar Tampilan Pohon.

Pilihan Item

Kontrol tampilan pohon memberi tahu jendela induk ketika pilihan berubah dari satu item ke item lainnya dengan mengirim pesan pemberitahuan TVN_SELCHANGING dan TVN_SELCHANGED . Kedua pemberitahuan menyertakan nilai yang menentukan apakah perubahan adalah hasil klik mouse atau penekanan tombol. Pemberitahuan juga menyertakan informasi tentang item yang mendapatkan pilihan dan item yang kehilangan pilihan. Anda dapat menggunakan informasi ini untuk mengatur atribut item yang bergantung pada status pilihan item. Mengembalikan TRUE sebagai respons terhadap TVN_SELCHANGING mencegah pilihan berubah, dan mengembalikan FALSE memungkinkan perubahan.

Aplikasi dapat mengubah pilihan dengan mengirim pesan TVM_SELECTITEM.

Informasi Item

Kontrol tampilan pohon mendukung sejumlah pesan yang mengambil informasi tentang item dalam kontrol.

Pesan TVM_GETITEM dapat mengambil handel dan atribut item. Atribut item mencakup statusnya saat ini, indeks dalam daftar gambar kontrol dari gambar yang dipilih item dan tidak dipilih bitmapped, bendera yang menunjukkan apakah item memiliki item turunan, alamat string label item, dan nilai 32-bit yang ditentukan aplikasi item.

Pesan TVM_GETNEXTITEM mengambil item tampilan pohon yang berisi hubungan yang ditentukan ke item saat ini. Pesan dapat mengambil induk item, item berikutnya atau sebelumnya yang terlihat, item turunan pertama, dan sebagainya.

Pesan TVM_GETITEMRECT mengambil persegi panjang pembatas untuk item tampilan pohon. Pesan TVM_GETCOUNT dan TVM_GETVISIBLECOUNT mengambil hitungan item dalam kontrol tampilan pohon dan jumlah item yang dapat sepenuhnya terlihat di jendela kontrol tampilan pohon. Anda dapat memastikan bahwa item tertentu terlihat dengan menggunakan pesan TVM_ENSUREVISIBLE.

Daftar Gambar Tampilan Pohon

Setiap item dalam kontrol tampilan pohon dapat memiliki empat gambar bitmapped yang terkait dengannya.

  • Gambar, seperti folder terbuka, ditampilkan saat item dipilih.
  • Gambar, seperti folder tertutup, ditampilkan saat item tidak dipilih.
  • Gambar overlay yang digambar secara transparan di atas gambar yang dipilih atau tidak dipilih.
  • Gambar status, yang merupakan gambar tambahan yang ditampilkan di sebelah kiri gambar yang dipilih atau tidak dipilih. Anda dapat menggunakan gambar status, seperti kotak centang yang dicentang dan dikosongkan, untuk menunjukkan status item yang ditentukan aplikasi.

Secara default, kontrol tampilan pohon tidak menampilkan gambar item. Untuk menampilkan gambar item, Anda harus membuat daftar gambar dan mengaitkannya dengan kontrol. Untuk informasi selengkapnya tentang daftar gambar, lihat Daftar Gambar.

Kontrol tampilan pohon dapat memiliki dua daftar gambar: daftar gambar normal dan daftar gambar status. Daftar gambar normal menyimpan gambar yang dipilih, tidak dipilih, dan dilapisi. Daftar gambar status menyimpan gambar status. Gunakan fungsi ImageList_Create untuk membuat daftar gambar, dan gunakan fungsi daftar gambar lainnya untuk menambahkan bitmap ke daftar gambar. Kemudian, untuk mengaitkan daftar gambar dengan kontrol tampilan pohon, gunakan pesan TVM_SETIMAGELIST. Pesan TVM_GETIMAGELIST mengambil handel ke salah satu daftar gambar kontrol tampilan pohon. Pesan ini berguna jika Anda perlu menambahkan lebih banyak gambar ke daftar.

Selain gambar yang dipilih dan tidak dipilih, daftar gambar normal kontrol tampilan pohon dapat berisi hingga empat gambar overlay. Gambar overlay diidentifikasi oleh indeks berbasis satu dan dirancang untuk digambar secara transparan di atas gambar yang dipilih dan tidak dipilih. Untuk menetapkan indeks mask overlay ke gambar dalam daftar gambar normal, panggil fungsi ImageList_SetOverlayImage.

Secara default, semua item menampilkan gambar pertama dalam daftar gambar normal untuk status yang dipilih dan tidak dipilih. Selain itu, secara default, item tidak menampilkan gambar overlay atau gambar status. Anda dapat mengubah perilaku default ini untuk item dengan mengirim pesan TVM_INSERTITEM atau TVM_SETITEM. Pesan-pesan ini menggunakan struktur TVITEM untuk menentukan indeks daftar gambar untuk item.

Untuk menentukan gambar yang dipilih dan tidak dipilih item, atur bit TVIF_SELECTEDIMAGE dan TVIF_IMAGE dalam anggota masker struktur TVITEM dan tentukan indeks dari daftar gambar normal kontrol di anggota iSelectImage dan iImage. Atau, Anda dapat menentukan nilai I_IMAGECALLBACK di iSelectImage dan iImage alih-alih menentukan indeks. Ini menyebabkan kontrol mengkueri jendela induknya untuk indeks daftar gambar setiap kali item akan digambar ulang. Kontrol mengirimkan pesan pemberitahuan TVN_GETDISPINFO untuk mengambil indeks.

Untuk mengaitkan gambar overlay dengan item, gunakan makro INDEXTOOVERLAYMASK untuk menentukan indeks mask overlay di anggota status struktur TVITEM item. Anda juga harus mengatur bit TVIS_OVERLAYMASK di anggota stateMask. Indeks masker overlay berbasis satu; indeks nol menunjukkan bahwa tidak ada gambar overlay yang ditentukan.

Gambar status disimpan dalam daftar gambar status terpisah dan diidentifikasi oleh indeksnya. Untuk menentukan daftar gambar status, kirim pesan TVM_SETIMAGELIST . Tidak seperti kontrol tampilan daftar, yang menggunakan indeks berbasis satu untuk mengidentifikasi gambar status, gambar status kontrol tampilan pohon diidentifikasi oleh indeks berbasis nol. Namun, indeks nol menunjukkan bahwa item tidak memiliki gambar status. Akibatnya, nol gambar tidak dapat digunakan sebagai gambar status. Untuk diskusi lebih lanjut tentang status item dan gambar status, lihat Gambaran Umum Status Item Tampilan Pohon.

Operasi Seret dan Letakkan

Kontrol tampilan pohon memberi tahu jendela induk saat pengguna mulai menyeret item. Jendela induk menerima pesan pemberitahuan TVN_BEGINDRAG ketika pengguna mulai menyeret item dengan tombol mouse kiri dan pesan pemberitahuan TVN_BEGINRDRAG saat pengguna mulai menyeret dengan tombol kanan. Anda dapat mencegah kontrol tampilan pohon mengirim pemberitahuan ini dengan memberikan kontrol tampilan pohon gaya TVS_DISABLEDRAGDROP .

Anda mendapatkan gambar untuk ditampilkan selama operasi seret dengan menggunakan pesan TVM_CREATEDRAGIMAGE. Kontrol tampilan pohon membuat bitmap yang diseret berdasarkan label item yang sedang diseret. Kemudian kontrol tampilan pohon membuat daftar gambar, menambahkan bitmap ke dalamnya, dan mengembalikan handel ke daftar gambar.

Anda harus memberikan kode yang benar-benar menyeret item. Ini biasanya melibatkan penggunaan kemampuan menyeret fungsi daftar gambar dan memproses pesan WM_MOUSEMOVE dan WM_LBUTTONUP (atau WM_RBUTTONUP) yang dikirim ke jendela induk setelah operasi seret dimulai.

Jika item dalam kontrol tampilan pohon adalah menjadi target operasi seret dan letakkan, Anda perlu tahu kapan penunjuk mouse berada pada item target. Anda dapat mengetahuinya dengan menggunakan pesan TVM_HITTEST. Anda menentukan alamat struktur TVHITTESTINFO yang berisi koordinat pointer mouse saat ini. Saat fungsi SendMessage kembali, struktur berisi bendera yang menunjukkan lokasi penunjuk mouse relatif terhadap kontrol tampilan pohon. Jika penunjuk melebihi item dalam kontrol tampilan pohon, struktur juga berisi handel ke item.

Anda dapat menunjukkan bahwa item adalah target operasi seret dan letakkan dengan menggunakan pesan TVM_SETITEM untuk mengatur status ke nilai TVIS_DROPHILITED. Item yang memiliki status ini digambar dalam gaya yang digunakan untuk menunjukkan target seret dan letakkan.

Pesan Pemberitahuan Kontrol Tampilan Pohon

Kontrol tampilan pohon mengirimkan pesan pemberitahuan berikut ke jendela induknya dalam bentuk pesan WM_NOTIFY.

Pemberitahuan Deskripsi
TVN_BEGINDRAG Menandakan dimulainya operasi seret dan letakkan.
TVN_BEGINLABELEDIT   Menandakan dimulainya pengeditan label di tempat.
TVN_BEGINRDRAG Menandakan bahwa tombol kanan mouse telah memulai operasi seret dan letakkan.
TVN_DELETEITEM Menandakan penghapusan item tertentu.
TVN_ENDLABELEDIT Memberi sinyal akhir pengeditan label.
TVN_GETDISPINFO Meminta informasi yang diperlukan kontrol tampilan pohon untuk menampilkan item.
TVN_ITEMEXPANDED Memberi sinyal bahwa daftar item anak induk diperluas atau diciutkan.
TVN_ITEMEXPANDING Memberi sinyal bahwa daftar item anak induk akan diperluas atau diciutkan.
TVN_KEYDOWN Memberi sinyal peristiwa keyboard.
TVN_SELCHANGED Memberi sinyal bahwa pilihan telah berubah dari satu item ke item lainnya.
TVN_SELCHANGING Menandakan bahwa pilihan akan diubah dari satu item ke item lainnya.
TVN_SETDISPINFO Memberi tahu jendela induk bahwa jendela tersebut harus memperbarui informasi yang dikelolanya untuk item.

 

Pemrosesan Pesan Kontrol Tampilan Pohon Default

Bagian ini menjelaskan pemrosesan pesan jendela yang dilakukan oleh kontrol tampilan pohon. Pesan khusus untuk kontrol tampilan pohon dibahas di bagian lain dari dokumen ini, sehingga tidak disertakan di sini.

Pesan Pemrosesan dilakukan
WM_COMMAND Memproses EN_UPDATE dan EN_KILLFOCUS mengedit pesan pemberitahuan kontrol dan meneruskan semua pemberitahuan kontrol edit lainnya ke jendela induk. Tidak ada nilai pengembalian.
WM_CREATE Mengalokasikan memori dan menginisialisasi struktur data internal. Ini mengembalikan nol jika berhasil, atau -1 sebaliknya.
WM_DESTROY Membebaskan semua sumber daya sistem yang terkait dengan kontrol. Ini mengembalikan nol.
WM_ENABLE Mengaktifkan atau menonaktifkan kontrol.
WM_ERASEBKGND Menghapus latar belakang jendela menggunakan warna latar belakang saat ini untuk kontrol tampilan pohon. Ini mengembalikan TRUE.
WM_GETDLGCODE Mengembalikan kombinasi nilai DLGC_WANTARROWS dan DLGC_WANTCHARS.
WM_GETFONT Mengembalikan handel ke font label saat ini.
WM_HSCROLL Menggulir kontrol tampilan pohon. Ini mengembalikan TRUE jika pengguliran terjadi, atau FALSE sebaliknya.
WM_KEYDOWN Mengirim pesan pemberitahuan TVN_KEYDOWN ke jendela induk untuk semua kunci. Mengirim pesan pemberitahuan NM_RETURN (tampilan pohon) saat pengguna menekan tombol ENTER. Ini memindahkan tanda sisipan saat pengguna menekan tombol arah atau tombol PAGE UP, PAGE DOWN, HOME, END, atau BACKSPACE. Ini menggulir kontrol tampilan pohon saat pengguna menekan tombol CTRL dalam kombinasi dengan tombol tersebut. Ini mengembalikan TRUE jika kunci diproses, atau FALSE sebaliknya.
WM_KILLFOCUS Mengecat ulang item yang difokuskan, jika ada, dan mengirim pesan pemberitahuan NM_KILLFOCUS (tampilan pohon) ke jendela induk.
WM_LBUTTONDBLCLK Membatalkan pengeditan label dan, jika item diklik ganda, mengirim pesan pemberitahuan NM_DBLCLK (tampilan pohon) ke jendela induk. Jika jendela induk mengembalikan 0, kontrol tampilan pohon akan mengalihkan status item yang diperluas, mengirim jendela induk ke pesan pemberitahuan TVN_ITEMEXPANDING dan TVN_ITEMEXPANDED . Tidak ada nilai pengembalian.
WM_LBUTTONDOWN Mengalihkan status diperluas jika pengguna mengklik tombol yang terkait dengan item induk. Jika pengguna mengklik label item, kontrol tampilan pohon memilih dan mengatur fokus ke item. Jika pengguna memindahkan mouse sebelum melepaskan tombol mouse, kontrol tampilan pohon memulai operasi seret dan letakkan. Tidak ada nilai pengembalian.
WM_PAINT Mengecat wilayah kontrol tampilan pohon yang tidak valid. Ini mengembalikan nol. Jika parameter wParam non-NULL, kontrol mengasumsikan bahwa nilainya adalah handel ke konteks perangkat (HDC) dan melukis menggunakan konteks perangkat tersebut.
WM_RBUTTONDOWN Memeriksa untuk melihat apakah item diklik dan operasi seret dimulai. Jika operasi telah dimulai, operasi akan mengirim pesan pemberitahuan TVN_BEGINRDRAG ke jendela induk dan menyoroti target penghilangan. Jika tidak, ia mengirim pesan pemberitahuan NM_RCLICK (tampilan pohon) ke jendela induk. Tidak ada nilai pengembalian.
WM_SETFOCUS Mengecat ulang item yang difokuskan, jika ada, dan mengirim pesan pemberitahuan NM_SETFOCUS ke jendela induk.
WM_SETFONT Menyimpan handel font yang ditentukan dan mengecat ulang kontrol tampilan pohon menggunakan font baru.
WM_SETREDRAW Mengatur atau menghapus bendera redraw. Kontrol tampilan pohon digambar ulang setelah bendera redraw diatur. Ini mengembalikan nol.
WM_SIZE Mengolah ulang variabel internal yang bergantung pada ukuran area klien kontrol tampilan pohon. Ini mengembalikan TRUE.
WM_STYLECHANGED Membatalkan pengeditan label dan menggambar ulang kontrol tampilan pohon menggunakan gaya baru. Ini mengembalikan nol.
WM_SYSCOLORCHANGE Mengurai ulang kontrol tampilan pohon menggunakan warna baru jika bendera redraw diatur. Tidak ada nilai pengembalian.
WM_TIMER Mulai mengedit label item. Jika pengguna mengklik label item yang difokuskan, kontrol tampilan pohon mengatur timer alih-alih segera memasukkan mode edit. Timer memungkinkan tampilan pohon untuk menghindari masuknya mode edit jika pengguna mengklik dua kali label. Ini mengembalikan nol.
WM_VSCROLL Menggulir kontrol tampilan pohon. Ini mengembalikan TRUE jika pengguliran terjadi, atau FALSE sebaliknya.

 

SAMPEL: CustDTv Mengilustrasikan Gambar Kustom dalam TreeView (Q248496)