2013-12-12 28 views
0

說1有一個非常基本的文本編輯器,如這裏所描述的:獲取下劃線的文本字符串形式

http://aclacl.brinkster.net/MFC/ch12e.htm

這個文本編輯器能夠創建,保存和打開包含以下內容的文件格式化文本,

LOREM 存有悲坐阿梅德,consectetur adipiscing ELIT,sed的tempor和活力,使勞動和悲傷,一些重要的事情要做eiusmod。多年來都將我來,這樣的刺激措施,如果學區誰擁有nostrud鍛鍊,從中aliquip優勢。想成爲在cupidatat cillum疼痛已經在DUIS等dolore麥格納被批評逃離產生任何結果的樂趣。 Excepteur cupidatat黑人就不是excepteur,他們拋棄了一般章有過錯,這是撫慰心靈,那就是我的辛勞,的職責。

現在想象一下,在斜體帶下劃線的文字爲好。

有沒有辦法讓帶下劃線的文本的每個實例在上面的段落作爲字符串?

此外,有沒有一種方法可以讓當前選擇作爲一個字符串的任何文本?

+0

是的是。例如閱讀爲['CFont'](http://msdn.microsoft.com/en-us/library/stebcezc.aspx)和[富文本控制(文檔http://msdn.microsoft.com/en-us /library/windows/desktop/bb787605%28v=vs.85%29.aspx)。這些 –

+0

查爾斯,感謝您的答覆。儘管1中找到的方法獲得當前選定的文本作爲字符串(EM_GETSELTEXT).... 1似乎仍不能找到你怎麼能夠讓下劃線的文本的每個實例爲字符串.... 1假設你是得到什麼是,答案就在於用的CFont類,但通過文件1've看了,但還是無法弄明白。你能好心詳細點嗎? – pintee

+0

流出來的文字爲RTF。解析它。或分析格式在每個位置上,並找出如果格式包含底線選項。 – xMRi

回答

0

僅有1想告訴你幾種方法之間的線索。

CHARFORMAT cf; 
CString text; 
GetDlgItemText(IDC_RICHEDIT21, text); 

//loop for all text in rich edit control 
for(int i = 0; i < text.GetLength(); i++) 
{ 
    m_rich->SetSel(0 + i, i + 1); //from start to end character 
    m_rich->GetSelectionCharFormat(cf); 

    if(cf.dwEffects & CFE_UNDERLINE) //check whether underline character 
    { 
     //get underline character using GetSelText() etc. 
    } 
} 

但是,此代碼不涉及任何性能方面,所以如果有很多串並強調了豐富的編輯控制字符,你必須檢查執行時間等。 此外,1認爲xMRi的答覆是基本的和正確的方法。

1想推薦下面的文章,也。

how to print data in tabular format in rich edit control

How to get text with RTF format from Rich Edit Win API?