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
PS_GEOMETRIC
Pena adalah geometris.
PS_COSMETIC
Penanya kosmetik.
 

Gaya pena bisa menjadi salah satu nilai berikut.

Nilai Makna
PS_ALTERNATE
Pena mengatur setiap piksel lainnya. (Gaya ini hanya berlaku untuk pena kosmetik.)
PS_SOLID
Penanya padat.
PS_DASH
Penanya putus-putus.
PS_DOT
Penanya putus-putus.
PS_DASHDOT
Pena memiliki tanda hubung dan titik bergantian.
PS_DASHDOTDOT
Pena memiliki tanda hubung bergantian dan titik ganda.
PS_NULL
Pena tidak terlihat.
PS_USERSTYLE
Pena menggunakan array gaya yang disediakan oleh pengguna.
PS_INSIDEFRAME
Penanya padat. Ketika pena ini digunakan dalam fungsi gambar GDI apa pun yang mengambil persegi panjang pembatas, dimensi gambar disusutkan sehingga sepenuhnya pas di persegi panjang pembatas, dengan mempertimbangkan lebar pena. Ini hanya berlaku untuk pena geometris.
 

Batas akhir hanya ditentukan untuk pena geometris. Batas akhir bisa menjadi salah satu nilai berikut.

Nilai Makna
PS_ENDCAP_ROUND
Tutup ujungnya bulat.
PS_ENDCAP_SQUARE
Tutup ujungnya persegi.
PS_ENDCAP_FLAT
Tutup ujungnya datar.
 

Gabungan hanya ditentukan untuk pena geometris. Gabungan bisa menjadi salah satu nilai berikut.

Nilai Makna
PS_JOIN_BEVEL
Gabungan di-beveled.
PS_JOIN_MITER
Gabungan bermigrasi saat berada dalam batas saat ini yang ditetapkan oleh fungsi SetMiterLimit . Jika melebihi batas ini, gabungan akan di-beveled.
PS_JOIN_ROUND
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

Lihat juga

CreateDIBSection

CreatePen

CreatePenIndirect

DeleteObject

GetObject

LOGBRUSH

Fungsi Pena

Gambaran Umum Pena

PilihObject

SetMiterLimit