Fungsi ExtCreatePen (wingdi.h)
Fungsi ExtCreatePen membuat pena kosmetik atau geometris logis yang memiliki atribut gaya, lebar, dan kuas yang ditentukan.
Sintaks
HPEN ExtCreatePen(
[in] DWORD iPenStyle,
[in] DWORD cWidth,
[in] const LOGBRUSH *plbrush,
[in] DWORD cStyle,
[in] const DWORD *pstyle
);
Parameter
[in] iPenStyle
Kombinasi jenis, gaya, batas akhir, dan atribut gabungan. Nilai dari setiap kategori digabungkan dengan menggunakan operator OR bitwise ( | ).
Jenis pena bisa menjadi salah satu nilai berikut.
Nilai | Makna |
---|---|
|
Pena adalah geometris. |
|
Penanya kosmetik. |
Gaya pena bisa menjadi salah satu nilai berikut.
Batas akhir hanya ditentukan untuk pena geometris. Batas akhir bisa menjadi salah satu nilai berikut.
Nilai | Makna |
---|---|
|
Tutup ujungnya bulat. |
|
Tutup ujungnya persegi. |
|
Tutup ujungnya datar. |
Gabungan hanya ditentukan untuk pena geometris. Gabungan bisa menjadi salah satu nilai berikut.
Nilai | Makna |
---|---|
|
Gabungan di-beveled. |
|
Gabungan bermigrasi saat berada dalam batas saat ini yang ditetapkan oleh fungsi SetMiterLimit . Jika melebihi batas ini, gabungan akan di-beveled. |
|
Gabungan bulat. |
[in] cWidth
Lebar pena. Jika parameter dwPenStyle PS_GEOMETRIC, lebar diberikan dalam unit logis. Jika dwPenStyle PS_COSMETIC, lebar harus diatur ke 1.
[in] plbrush
Penunjuk ke struktur LOGBRUSH . Jika dwPenStyle PS_COSMETIC, anggota lbColor menentukan warna pena dan anggota lpStyle harus diatur ke BS_SOLID. Jika dwPenStyle PS_GEOMETRIC, semua anggota harus digunakan untuk menentukan atribut kuas pena.
[in] cStyle
Panjangnya, dalam unit DWORD , dari array lpStyle . Nilai ini harus nol jika dwPenStyle tidak PS_USERSTYLE.
Jumlah gaya dibatasi hingga 16.
[in] pstyle
Penunjuk ke array. Nilai pertama menentukan panjang tanda hubung pertama dalam gaya yang ditentukan pengguna, nilai kedua menentukan panjang spasi pertama, dan sebagainya. Pointer ini harus NULL jika dwPenStyle tidak PS_USERSTYLE.
Jika array lpStyle terlampaui selama gambar garis, penunjuk diatur ulang ke awal array. Ketika ini terjadi dan dwStyleCount adalah angka genap, pola tanda hubung dan spasi berulang. Namun, jika dwStyleCount ganjil, pola berbalik ketika pointer diatur ulang -- elemen pertama lpStyle sekarang mengacu pada spasi, yang kedua mengacu pada tanda hubung, dan sebagainya.
Mengembalikan nilai
Jika fungsi berhasil, nilai yang dikembalikan adalah handel yang mengidentifikasi pena logis.
Jika fungsi gagal, nilai yang dikembalikan adalah nol.
Keterangan
Pena geometris dapat memiliki lebar apa pun dan dapat memiliki salah satu atribut kuas, seperti dither dan pola. Pena kosmetik hanya dapat berupa satu piksel lebar dan harus berwarna solid, tetapi pena kosmetik umumnya lebih cepat daripada pena geometris.
Lebar pena geometris selalu ditentukan dalam unit dunia. Lebar pena kosmetik selalu 1.
Batas akhir dan gabungan hanya ditentukan untuk pena geometris.
Setelah aplikasi membuat pena logis, aplikasi dapat memilih pena tersebut ke dalam konteks perangkat dengan memanggil fungsi SelectObject . Setelah pena dipilih ke dalam konteks perangkat, pena dapat digunakan untuk menggambar garis dan kurva.
Jika dwPenStyle PS_COSMETIC dan PS_USERSTYLE, entri dalam array lpStyle menentukan panjang tanda hubung dan spasi dalam unit gaya. Unit gaya ditentukan oleh perangkat tempat pena digunakan untuk menggambar garis.
Jika dwPenStyle PS_GEOMETRIC dan PS_USERSTYLE, entri dalam array lpStyle menentukan panjang tanda hubung dan spasi dalam unit logis.
Jika dwPenStyle PS_ALTERNATE, unit gaya diabaikan dan setiap piksel lainnya diatur.
Jika anggota lbStyle dari struktur LOGBRUSH yang diarahkan oleh lplb BS_PATTERN, bitmap yang ditujukkan oleh anggota lbHatch dari struktur tersebut tidak dapat menjadi bagian DIB. Bagian DIB adalah bitmap yang dibuat oleh CreateDIBSection. Jika bitmap tersebut adalah bagian DIB, fungsi ExtCreatePen gagal.
Ketika aplikasi tidak lagi memerlukan pena tertentu, aplikasi harus memanggil fungsi DeleteObject untuk menghapus pena.
ICM: Tidak ada manajemen warna yang dilakukan pada pembuatan pena. Namun, manajemen warna dilakukan ketika pena dipilih ke dalam konteks perangkat berkemampuan ICM.
Contoh
Misalnya, lihat Menggunakan Pena.
Persyaratan
Klien minimum yang didukung | Windows 2000 Professional [hanya aplikasi desktop] |
Server minimum yang didukung | Windows 2000 Server [hanya aplikasi desktop] |
Target Platform | Windows |
Header | wingdi.h (sertakan Windows.h) |
Pustaka | Gdi32.lib |
DLL | Gdi32.dll |