2012-04-03 50 views
1

我有圍繞Circle繪製文字的問題。使用C++ MFC函數繪製文字周圍的文字

我在C#http://www.codeproject.com/Articles/30090/Text-On-A-Path-in-WPF

卜發現偉大的樣品我需要實現這在VC++ 6.0和C#示例工作不適合我這個原因。

也許存在一些基本的算法來實現這個?

所有圖紙都必須在CDC中繪製。

+0

什麼不適合你?你能顯示一些代碼以及錯誤消息嗎? – Gray 2012-04-04 12:42:48

+0

當一個問題已經有一個特定的,有用的答案時,你如何將問題作爲「不是真正的問題」來解決?從定義上看,問題似乎是可以回答的。 – 2012-04-04 16:21:50

回答

0

CDC是一個圍繞GDI的薄包裝。 GDI沒有爲你想要做的事提供很多支持,所以這將是很多工作。這裏有幾個辦法:

  1. 繪製文本通常(在一條直線上)到離屏DIB節,然後執行按像素轉變爲與文本另一關閉屏幕DIB節一個圓圈。然後,您可以將轉換後的DIB部分blit到輸出設備。

  2. 對於每個字符,創建一個邏輯字體,並將擒縱系統和方向設置爲適合當前位置的角度,然後使用該字體繪製字符。對每個角色重複一遍。這裏的問題是,即使使用TrueType或OpenType字體,旋轉並不總是很好,這取決於字體的質量,提示等。

  3. 使用TrueType或OpenType字體並獲得GDI給予您定義實際字符形狀的矢量(線段和貝塞爾曲線)。將它們組裝成一個直線,然後將笛卡爾應用於極座標變換。使用其中一個路徑函數繪製結果。

+0

是的,你說得對。我嘗試了方法2,旋轉後我的文字「奇怪」。有些字母較小,有些字母形狀奇特。 – DjPasco 2012-04-04 07:25:10