2013-03-14 132 views
2

我希望能夠在消息框內顯示帶格式的文本(如粗體文本,項目符號點,斜體等)。mfc - 帶有豐富文本的MessageBox

我遇到了this wonderful article,但似乎無法使其工作。我在同一鏈接上使用演示應用程序。

有人可以幫我嗎?我試圖調試/理解代碼是徒勞的。

限制:(不是我的選擇)

  • 必須與Windows XP兼容。
  • 我使用Visual C++ 6

它應該如何顯示:

How it is supposed to display


它是如何實際顯示:

enter image description here

+1

你的文章是14歲。所以,我認爲你應該搜索更現代的,或者使用自定義的conrols庫 - 比如BCG Controls Pro。 – eraxillan 2013-03-14 06:39:18

+0

我個人會發現這樣一個消息框非常冷漠......真是一個難看的東西!爲什麼不使用任務對話框?它們比香草消息盒靈活得多,而且看起來不錯,沒有炫耀。 – 2013-03-14 06:41:22

+0

@Axilles,哈哈真實。我會的,但我的開發環境有限。僅限自由軟件(不是我的選擇)。 – 2013-03-14 06:41:29

回答

0

我已經解決d由於DavidK非常有幫助的建議,這個問題(請參閱問題的評論)。 FIX for Windows 2000評論固定這個整齊。

3

只需創建一個RichEdit2控制對話框弓...

在InitInstance中,添加follwing電話:

// Init RichEdit Library 

AfxInitRichEdit2(); 

在你的對話框中,創建一個變量RichEdit控件和更新如:

// Turn Word Wrap on (based on window width) 

m_RichEditMsg.SetTargetDevice(NULL, 0); 

// Set Base Text 

strText = "{\\rtf1\\ansi\\fs20 "; 
strText += "{\\colortbl;\\red0\\green0\\blue0;\\red0\\green0\\blue255;\\red0\\green255\\blue255;\\red0\\green255\\blue0;\\red255\\green0\\blue0;}"; 
    strText += "{\\f1\\cb1\\cf2\\b Main Title} \\par\\par \\fs18 Other text to add {\\b In Bold} no more in bolb ... \\par"; 
str.Format("\\par Id: {\\b %s}", m_strProgId); 
strText += str; 
strText+= "\\par \\par {\\f1 \\b Please Confirm ...} \\par}"; 

// Update Controls 

m_RichEditMsg.SetWindowText(strText); 

簡單地建立自己的信息,你會得到大膽,顏色,...

+0

謝謝你的回答。我想過這個,但是我不太喜歡這樣的表現。理想情況下,我希望它看起來像一個普通的消息框,但帶有豐富的文本。這絕對是我的後備選擇。 – 2013-03-20 09:53:56