2012-07-15 47 views
0

我目前正在生成一個報表,用於從RichTextBox控件派生的控件進行打印。我有幾段與.SelectionIndent.SelectionRightIndent屬性縮進的段落,但我也希望讓它們充分合理(與微軟Word的工作方式一樣,具有細微的子字符間距)。有沒有一種方法可以爲RichTextBox中的一段文本指定完整對齊?

.SelectionAlignment財產是可用的,但只提供Left,CenterRight對齊。

有沒有辦法在RichTextBox中指定完整對齊方式?如果有必要,我願意深入挖掘底層RTF協議(協議本身應支持此功能),但我不願意創建格式化爲全文的位圖來嵌入文檔。

值得一提的是,我使用了msftedit.dll中的RICHEDIT50W,並且不能依賴於安裝了任何Word版本的客戶端。

回答

3

可以擴展RichTextBox控件等this &設置PARAFORMAT2 structure's段落對齊構件wAlignmentPFA_JUSTIFY。使用此會員,set the PFM_ALIGNMENT flag in the dwMask member

NB:的RichEdit 2.0段落是有道理的。早於RichEdit 3.0的Rich Edit控件顯示與左邊距對齊的文本。

 PARAFORMAT2 fmt = new PARAFORMAT2(); 
     fmt.cbSize = Marshal.SizeOf(fmt); 
     fmt.dwMask = PFM_ALIGNMENT; 
     fmt.wAlignment = (short)value; /// PFA_JUSTIFY here. 

     // Set the alignment. 
     SendMessage(new HandleRef(this, Handle), 
        EM_SETPARAFORMAT, 
        SCF_SELECTION, ref fmt); 

[你必須寫相應的P /作爲樣本連接中所描繪的WIN32的API調用的]

+0

偉大的工作,謝謝! – MCattle 2012-07-16 12:46:56

相關問題