pesan WM_CTLCOLORSTATIC
Kontrol statis, atau kontrol edit yang baca-saja atau dinonaktifkan, mengirim pesan WM_CTLCOLORSTATIC ke jendela induknya saat kontrol akan digambar. Dengan menanggapi pesan ini, jendela induk dapat menggunakan handel konteks perangkat yang ditentukan untuk mengatur warna latar depan teks dan latar belakang kontrol statis.
Jendela menerima pesan ini melalui fungsi WindowProc-nya .
WM_CTLCOLORSTATIC
WPARAM wParam;
LPARAM lParam;
Parameter
-
wParam
-
Tangani ke konteks perangkat untuk jendela kontrol statis.
-
lParam
-
Tangani ke kontrol statis.
Menampilkan nilai
Jika aplikasi memproses pesan ini, nilai yang dikembalikan adalah handel ke kuas yang digunakan sistem untuk melukis latar belakang kontrol statis.
Keterangan
Jika aplikasi mengembalikan kuas yang dibuatnya (misalnya, dengan menggunakan fungsi CreateSolidBrush atau CreateBrushIndirect ), aplikasi harus membebaskan kuas. Jika aplikasi mengembalikan kuas sistem (misalnya, yang diambil oleh fungsi GetStockObject atau GetSysColorBrush ), aplikasi tidak perlu membebaskan kuas.
Secara default, fungsi DefWindowProc memilih warna sistem default untuk kontrol statis.
Anda dapat mengatur warna latar belakang teks dari kontrol edit yang dinonaktifkan, tetapi Anda tidak dapat mengatur warna latar depan teks. Sistem selalu menggunakan COLOR_GRAYTEXT.
Edit kontrol yang tidak baca-saja atau dinonaktifkan tidak mengirim pesan WM_CTLCOLORSTATIC ; sebaliknya, mereka mengirim pesan WM_CTLCOLOREDIT .
Pesan WM_CTLCOLORSTATIC tidak pernah dikirim di antara utas; hanya dikirim dalam utas yang sama.
Jika prosedur kotak dialog menangani pesan ini, itu harus mentransmisikan nilai pengembalian yang diinginkan ke INT_PTR dan mengembalikan nilai secara langsung. Jika prosedur kotak dialog mengembalikan FALSE, maka penanganan pesan default dilakukan. Nilai DWL_MSGRESULT yang ditetapkan oleh fungsi SetWindowLong diabaikan.
Contoh
Contoh C++ berikut menunjukkan cara mengatur warna latar depan teks dan latar belakang kontrol statis sebagai respons terhadap pesan WM_CTLCOLORSTATIC . Variabel hbrBkgnd
adalah variabel HBRUSH statis yang diinisialisasi ke NULL, dan menyimpan kuas latar belakang antara panggilan ke WM_CTLCOLORSTATIC. Kuas harus dihancurkan oleh panggilan ke fungsi DeleteObject ketika tidak lagi diperlukan, biasanya ketika kotak dialog terkait dihancurkan.
case WM_CTLCOLORSTATIC:
{
HDC hdcStatic = (HDC) wParam;
SetTextColor(hdcStatic, RGB(255,255,255));
SetBkColor(hdcStatic, RGB(0,0,0));
if (hbrBkgnd == NULL)
{
hbrBkgnd = CreateSolidBrush(RGB(0,0,0));
}
return (INT_PTR)hbrBkgnd;
}
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung |
Windows Vista [hanya aplikasi desktop] |
Server minimum yang didukung |
Windows Server 2003 [hanya aplikasi desktop] |
Header |
|
Lihat juga
-
Referensi
-
Sumber Daya Lainnya