setlinestyle

這個函數用於設置當前設備畫線樣式。

void setlinestyle(
	const LINESTYLE* pstyle
);

 

void setlinestyle(
	int style,
	int thickness = 1,
	const DWORD *puserstyle = NULL,
	DWORD userstylecount = 0
);

 

參數

pstyle

指向畫線樣式 LINESTYLE 的指針。

style

畫線樣式(詳見備註)。

thickness

線的寬度,以像素爲單位。

puserstyle

用戶自定義樣式數組,僅當線型爲 PS_USERSTYLE 時該參數有效。
數組第一個元素指定畫線的長度,第二個元素指定空白的長度,第三個元素指定畫線的長度,第四個元素指定空白的長度,以此類推。

userstylecount

用戶自定義樣式數組的元素數量。

返回值

備註

參數 style 指定了畫線樣式,該樣式由直線樣式、端點樣式、連接樣式三類組成。可以是其中一類或多類的組合。同一類型中只能指定一個樣式。

直線樣式可以是以下值:

含義
PS_SOLID 線形爲實線。
PS_DASH 線形爲:------------
PS_DOT 線形爲:············
PS_DASHDOT 線形爲:-·-·-·-·-·-·
PS_DASHDOTDOT 線形爲:-··-··-··-··
PS_NULL 線形爲不可見。
PS_USERSTYLE 線形樣式爲用戶自定義,由參數 puserstyle 和 userstylecount 指定。

宏 PS_STYLE_MASK 是直線樣式的掩碼,可以通過該宏從畫線樣式中分離出直線樣式。

端點樣式可以是以下值:

含義
PS_ENDCAP_ROUND 端點爲圓形。
PS_ENDCAP_SQUARE 端點爲方形。
PS_ENDCAP_FLAT 端點爲平坦。

宏 PS_ENDCAP_MASK 是端點樣式的掩碼,可以通過該宏從畫線樣式中分離出端點樣式。

連接樣式可以是以下值:

含義
PS_JOIN_BEVEL 連接處爲斜面。
PS_JOIN_MITER 連接處爲斜接。
PS_JOIN_ROUND 連接處爲圓弧。

宏 PS_JOIN_MASK 是連接樣式的掩碼,可以通過該宏從畫線樣式中分離出連接樣式。

掩碼宏表示對應樣式組所佔用的所有位。例如,對於一個已經混合了多種樣式的 style 變量,如果希望僅將直線樣式修改爲點劃線,可以這麼做:

style = (style & ~PS_STYLE_MASK) | PS_DASHDOT;

 

示例

以下代碼片段設置畫線樣式爲點劃線:

setlinestyle(PS_DASHDOT);

 

以下代碼片段設置畫線樣式爲寬度 3 像素的虛線,端點爲平坦的:

setlinestyle(PS_DASH | PS_ENDCAP_FLAT, 3);

 

以下代碼片段設置畫線樣式爲寬度 10 像素的實線,連接處爲斜面:

setlinestyle(PS_SOLID | PS_JOIN_BEVEL, 10);

 

以下代碼片段設置畫線樣式爲自定義樣式(畫 5 個像素,跳過 2 個像素,畫 3 個像素,跳過 1 個像素……),端點爲平坦的:

DWORD a[4] = {5, 2, 3, 1};
setlinestyle(PS_USERSTYLE | PS_ENDCAP_FLAT, 1, a, 4);
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章