Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Mencipta Kawalan Pekeliling Lutsinar dengan Teks Yang Tidak Bertindih Kawalan Lain?
Soalan
Dalam projek, saya perlu menambah kawalan bulatan dan memaparkan beberapa teks di tengah.
Masalah saya ialah bulatan itu terlalu kecil dan apabila saya mengubah saiznya, ia bertindih dengan kawalan lain. Saya mahu bulatan itu sama lebar dengan segi empat sama.
Atau, bagaimana untuk menjadikan latar belakang kawalan telus?
Penyelesaian
Ini ialah kawalan tersuai yang diperoleh daripada Kawalan yang boleh dibuat lut sinar.
Antara muka ialah bulatan berwarna yang boleh mengandungi beberapa nombor.
Kawalan ini mendedahkan sifat tersuai berikut:
Kelegapan : Tahap kelegapan latar belakang kawalan [0, 255]
InnerPadding (lapik dalam) : Jarak antara segi empat tepat dalam yang mentakrifkan sempadan bulatan dan sempadan kawalan.
FontPadding (font padding) : Jarak antara teks dan segi empat tepat dalam.
Mencapai ketelusan dengan mengatasi CreateParams dan kemudian menetapkan ExStyle |= WS_EX_TRANSPARENT;
Kaedah Control.SetStyle() digunakan untuk mengubah suai tingkah laku kawalan, tambahkan ControlStyles berikut:
▶ ControlStyles.Opaque: Menghalang latar belakang kawalan daripada dilukis supaya ia tidak diurus oleh sistem. Digunakan bersama CreateParams, menetapkan gaya lanjutan kawalan kepada WS_EX_TRANSPARENT menjadikan kawalan telus sepenuhnya.
▶ ControlStyles.SupportsTransparentBackColor: Kawalan menerima nilai alfa untuk warna latar belakangnya. Jika anda juga tidak menetapkan ControlStyles.UserPaint, ia tidak akan digunakan untuk mensimulasikan ketelusan. Kami akan melakukannya sendiri melalui kaedah lain.
Untuk melihat cara ia berfungsi, buat fail kelas baharu, gantikan semua kod di dalamnya dengan kod ini, simpan ruang nama dan bina projek/penyelesaian.
Kawalan tersuai baharu akan muncul dalam kotak alat. Seret dan lepaskan ke dalam borang. Ubah suai sifat tersuainya mengikut keperluan.
Perwakilan visual kawalan:
Nota dan Penafian
Atas ialah kandungan terperinci Bagaimana untuk Mencipta Kawalan Pekeliling Lutsinar dengan Teks Yang Tidak Bertindih Kawalan Lain?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!