用gdi+使文字輕鬆旋轉
見資源在老式的windows圖形裝置介面中製作旋轉文字會是一件痛苦費力的工作,但在.net中它會變得很簡單。
by bill wagner
圖1. 在.net中旋轉文字
還記得在典型的windows程式中用gdi(一種老式的圖形裝置api)來實現文字旋轉是件多麼麻煩的事嗎?首先你得設定旋轉字型 - 它只能在幾種平台下實現。而當你想要將文字居中顯示的時候會更麻煩,因為顯示該段文字大小的函式對旋轉字型不起作用。你必須將文字水平放置,再測量其大小,然後建乙個新的旋轉字型,最後把它畫出來。
使用gdi+會大大地簡化操作過程。microsoft在新的圖形裝置介面實現中建立了一種一致的圖形模型,它通過一套c++類來實現。
我寫了乙個簡單的例子來說明用gdi+實現文字旋轉是多麼地容易。在例子中我把文字畫在窗體的中間位置,它能夠以任何角度進行旋轉。gdi+中的兩個特性使繪製過程變得簡單:圖形平移(graphics translations)和圖形旋轉(graphics rotations)。
要將文字居中顯示,只需轉換座標系(coordinates)使原點(origin)置於窗體的中間位置:
size sz = mywindow.size;point middle = new point (sz.width / 2, sz.height / 2);e.graphics.translatetransform (middle.x, middle.y);通過繼續變換來實現簡單的旋**
e.graphics.rotatetransform (_angle);當位置調整好以後,你就可以繪製文字了:
stringformat format = new stringformat (stringformatflags.noclip);format.alignment = stringalignment.center;format.linealignment = stringalignment.center;e.graphics.drawstring ("a ****** textstring ", f, brushes.black, 0, 0, format);stringformat物件控制著該字串的對齊方式。這裡,我選中了居中位置。
現在你能夠以任何角度旋轉字型了。在執行這段**時,你會發現當它旋轉到正45度角的時候,看起來卻像是負45度角(見圖1)。記住在gdi中標準的座標系是y座標向下的,在這種座標系上,正角度的旋轉是沿水平軸順時針旋轉的。
bill wagner是
srt solutions的windows技術專家。他是
visual studio magazine的撰稿編輯,也是
再分享一下我老師大神的人工智慧教程吧。零基礎!通俗易懂!風趣幽默!還帶黃段子!希望你也加入到我們人工智慧的隊伍中來!
用gdi+使文字輕鬆旋轉
見資源在老式的windows圖形裝置介面中製作旋轉文字會是一件痛苦費力的工作,但在.net中它會變得很簡單。
by bill wagner
圖1. 在.net中旋轉文字
還記得在典型的windows程式中用gdi(一種老式的圖形裝置api)來實現文字旋轉是件多麼麻煩的事嗎?首先你得設定旋轉字型 - 它只能在幾種平台下實現。而當你想要將文字居中顯示的時候會更麻煩,因為顯示該段文字大小的函式對旋轉字型不起作用。你必須將文字水平放置,再測量其大小,然後建乙個新的旋轉字型,最後把它畫出來。
使用gdi+會大大地簡化操作過程。microsoft在新的圖形裝置介面實現中建立了一種一致的圖形模型,它通過一套c++類來實現。
我寫了乙個簡單的例子來說明用gdi+實現文字旋轉是多麼地容易。在例子中我把文字畫在窗體的中間位置,它能夠以任何角度進行旋轉。gdi+中的兩個特性使繪製過程變得簡單:圖形平移(graphics translations)和圖形旋轉(graphics rotations)。
要將文字居中顯示,只需轉換座標系(coordinates)使原點(origin)置於窗體的中間位置:
size sz = mywindow.size;point middle = new point (sz.width / 2, sz.height / 2);e.graphics.translatetransform (middle.x, middle.y);通過繼續變換來實現簡單的旋**
e.graphics.rotatetransform (_angle);當位置調整好以後,你就可以繪製文字了:
stringformat format = new stringformat (stringformatflags.noclip);format.alignment = stringalignment.center;format.linealignment = stringalignment.center;e.graphics.drawstring ("a ****** textstring ", f, brushes.black, 0, 0, format);stringformat物件控制著該字串的對齊方式。這裡,我選中了居中位置。
現在你能夠以任何角度旋轉字型了。在執行這段**時,你會發現當它旋轉到正45度角的時候,看起來卻像是負45度角(見圖1)。記住在gdi中標準的座標系是y座標向下的,在這種座標系上,正角度的旋轉是沿水平軸順時針旋轉的。
bill wagner是
srt solutions的windows技術專家。他是
visual studio magazine的撰稿編輯,也是
GDI 入門(三 GDI 中文字操作)
三 gdi 中文字操作 using system.drawing using system.drawing.drawing2d using system.drawing.text private void button1 click object sender,eventargs e private...
GDI 測算文字繪製範圍
啥也不羅嗦,上 gdiplus solidbrush brush gdiplus color 124,25,28 gdiplus rectf bound size sz hdc hdc gs.gethdc settextcharacterextra hdc,0 settextjustificatio...
7 利用GDI 繪製文字
s 要繪製的字串。它定義字串的文字格式。它確定所繪製文字的顏色和紋理。結構,它指定所繪製文字的左上角。drawstring string s,font font,brush brush,pointf point drawstring string s,font font,brush brush,fl...