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)

另請參閱

DrvFillPath

DrvStrokeAndFillPath

DrvStrokePath

EngCreatePath

EngDeletePath