drvStrokePath 函式 (winddi.h)
DrvStrokePath 函式 (大綱) 路徑。
語法
BOOL DrvStrokePath(
[in, out] SURFOBJ *pso,
[in] PATHOBJ *ppo,
[in] CLIPOBJ *pco,
[in, optional] XFORMOBJ *pxo,
[in] BRUSHOBJ *pbo,
[in] POINTL *pptlBrushOrg,
[in] LINEATTRS *plineattrs,
[in] MIX mix
);
參數
[in, out] pso
SURFOBJ 結構的指標,可識別要繪製的介面。
[in] ppo
PATHOBJ 結構的指標。 提供 GDI PATHOBJ_Xxx 服務例程來列舉組成路徑的線條、Bezier 曲線和其他數據。 這表示要繪製的內容。
[in] pco
CLIPOBJ 結構的指標。 提供 GDI CLIPOBJ_Xxx 服務例程,以列舉 裁剪區域 作為一組矩形。 或者,路徑中的所有行都可以在CLIPOBJ結構中預先列舉。 這表示驅動程式可以讓 GDI 執行所有線條裁剪計算。
[in, optional] pxo
XFORMOBJ 結構的指標。 只有在繪製幾何寬線時,才需要此專案。 它會指定將世界座標對應到裝置座標的轉換。 這是必要的,因為路徑是在裝置座標中提供,但幾何寬線實際上是在世界座標中擴展。
您可以查詢 XFORMOBJ 結構來尋找轉換。
[in] pbo
BRUSHOBJ 結構的指標,指定繪製路徑時要使用的筆刷。
[in] pptlBrushOrg
POINTL 結構的指標,指定用來對齊裝置上筆刷圖樣的筆刷原點。
[in] plineattrs
LINEATTRS 結構的指標。 請注意,如果線條已設定樣式,這個結構的 elStyleState 成員就必須更新為此函式的一部分。 另請注意,如果要繪製單一像素寬度外觀線條,就必須更新 ptlLastPel 成員。
[in] mix
混合模式,定義用於筆刷的前景和背景點陣作業。 如需混合模式的詳細資訊,請參閱。
傳回值
如果驅動程式能夠筆劃路徑,則傳回值為 TRUE 。 如果 GDI 應該改為筆劃路徑,則傳回值為 FALSE,但不會記錄任何錯誤碼。 如果驅動程式遇到錯誤,則會DDI_ERROR傳回值,並報告錯誤碼。
備註
如果驅動程式已連結函式,而且已設定適當的 GCAPS,GDI 會在 GDI 使用任何一組屬性繪製線條或曲線時呼叫 DrvStrokePath 。
如果驅動程式支援此進入點,它也應該支援使用任意裁剪繪製外觀寬線。 使用提供的 GDI 函式,呼叫可以細分成一組具有預先計算裁剪的單圖元寬度線條。
如果要在 裝置管理的介面上完成任何繪圖,則需要此函式。
進階裝置的驅動程式可以選擇性地接收此呼叫,以繪製包含 Bezier 曲線和幾何寬線的路徑。 GDI 會測試 DEVINFO 結構之 flGraphicsCaps 成員的GCAPS_BEZIERS和GCAPS_GEOMETRICWIDE旗標,以決定是否應該呼叫此函式。 (位的四個組合會決定此呼叫的四個功能層級。) 如果驅動程式取得包含 Bezier 曲線或幾何寬線的進階呼叫,則可以決定不處理呼叫,並傳回 FALSE。 如果路徑或裁剪太複雜,裝置無法處理,就可能會發生這種情況。 如果呼叫傳回 FALSE,GDI 會將呼叫細分為更容易處理的簡單呼叫。
針對裝置管理的介面,函式必須使用純色筆刷,以最少方式支援單圖元寬純色和樣式外觀線條。
混合模式會定義傳入模式應該如何與裝置介面上的數據混合。 MIX 數據類型包含兩個二進位點陣運算, (ROP2) 封裝成單一 ULONG 的值。 最低順序位元組會定義前景點陣運算;下一個字節會定義背景點陣作業。 如需點陣作業碼的詳細資訊,請參閱 Microsoft Windows SDK 檔。
規格需求
需求 | 值 |
---|---|
目標平台 | 桌面 |
標頭 | winddi.h (包含Winddi.h) |