Bagikan melalui


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
Winuser.h (termasuk Windows.h)

Lihat juga

Referensi

WM_CTLCOLORBTN

WM_CTLCOLOREDIT

WM_CTLCOLORLISTBOX

WM_CTLCOLORSCROLLBAR

Sumber Daya Lainnya

DefWindowProc

RealisasiPalette

SelectPalette

WM_CTLCOLORDLG