PATHOBJ 結構 (winddi.h)
PATHOBJ 結構是用來描述一組要筆劃或填滿的線條和貝塞爾曲線。
語法
typedef struct _PATHOBJ {
FLONG fl;
ULONG cCurves;
} PATHOBJ;
成員
fl
描述路徑的一組提示旗標。 此成員是位 OR (,具有下列值) 特定限制:
旗標 | 描述 |
---|---|
PO_ALL_INTEGERS |
路徑的頂點具有沒有小數部分的整數座標。 此旗標主要是作為快捷鍵,讓驅動程式可以使用更簡單的全整數快速路徑。
此外,當 GDI 設定此旗標時,允許驅動程式稍微偏離標準 NT 型作業系統 GDI Grid 交集量化 (GIQ) 慣例,以指定線條的點陣化規則。 具體來說,當設定PO_ALL_INTEGERS時,驅動程式可以選擇自己的規則,在系結斷器案例中,線條在邏輯上完全落在兩個像素之間。 一般而言,此旗標可讓驅動程式使用硬體點對點線條繪製功能,即使硬體與 GIQ 有不同的系結斷器規則也一樣。 GDI 只會針對寬度為一像素的實線設定此旗標。 此外,只有在裝置內容的圖形模式設定為GM_COMPATIBLE時,GDI 才會設定此旗標。 如需設定圖形模式的詳細資訊,請參閱 Microsoft Window SDK 檔中的 SetGraphicsMode 。 |
PO_BEZIERS | 路徑包含 Bezier 曲線。 GDI 只會在 fl 成員中設定其中一個PO_BEZIERS或PO_ELLIPSE。 |
PO_ELLIPSE | 路徑是由路徑周框內所內寫的單一橢圓形所組成。 GDI 只會在 fl 成員中設定其中一個PO_BEZIERS或PO_ELLIPSE。 |
PO_ENUM_AS_INTEGERS |
驅動程式可以要求從 PATHOBJ_bEnum 傳回的頂點以 32 位整數格式表示,而不是標準 28.4 格式。 驅動程式會先將 ORing PO_ENUM_AS_INTEGERS傳送至指定 PATHOBJ 的 fl 成員,再呼叫 PATHOBJ_bEnum。
只有在 GDI 已設定PO_ALL_INTEGERS旗標時,驅動程式才能設定PO_ENUM_AS_INTEGERS。 也就是說,必須知道路徑只包含整數座標。 請注意,PO_ENUM_AS_INTEGERS是唯一允許驅動程式修改的旗標。 設定此旗標時,允許驅動程式略過標準 GIQ 慣例,以指定線條的點陣化規則。 具體來說,當設定PO_ENUM_ALL_INTEGERS時,驅動程式可以選擇自己的規則,在系結中斷器案例中,線條在邏輯上完全落在兩個像素之間。 一般而言,此旗標可讓驅動程式使用硬體點對點線條繪製功能,即使硬體與 GIQ 有不同的系結斷器規則也一樣。 |
cCurves
構成路徑的線條和 Bezier 曲線數目。
備註
與此結構相關聯的函式允許列舉驅動程序的線條和曲線。
PATHOBJ 物件提供下列 GDI 服務例程:
- PATHOBJ_bCloseFigure
- PATHOBJ_bEnum
- PATHOBJ_bEnumClipLines
- PATHOBJ_bMoveTo
- PATHOBJ_bPolyBezierTo
- PATHOBJ_bPolyLineTo
- PATHOBJ_vEnumStart
- PATHOBJ_vEnumStartClipLines
- PATHOBJ_vGetBounds
規格需求
需求 | 值 |
---|---|
標頭 | winddi.h (包含Winddi.h) |