2013-04-05 67 views
1

我有丰富的编辑控件,我想在它添加格式的文本,但它不工作:格式添加富文本框

const char* str="{\rtf1\ansi{\fonttbl\f0\fswiss Helvetica;}\f0\pard\ 
This is some {\b bold} text.\par\ 
}"; 
    LoadLibrary("riched32.dll"); 

    HWND hEdit= CreateWindowEx(WS_EX_CLIENTEDGE, RICHEDIT_CLASS, str, 
     WS_CHILD | WS_VISIBLE | WS_VSCROLL | ES_MULTILINE | ES_AUTOVSCROLL 
| ES_READONLY, 0, 0, 100, 100, 
     hwnd, (HMENU) IDC_MAIN_EDIT, GetModuleHandle(NULL), NULL); 

我知道我可以添加使用PARAFORMATCHARFORMAT格式化和发送消息是这样的控制:

PARAFORMAT pf; 
CHARFORMAT cf; 

memset(&cf, 0, sizeof cf); 
cf.cbSize = sizeof cf; 
cf.dwMask = CFM_BOLD; 
cf.dwEffects = CFE_BOLD; 
SendMessage(hEdit, EM_SETCHARFORMAT, SCF_SELECTION, (LPARAM) &cf); 
SendMessage(hEdit, EM_REPLACESEL, FALSE, (LPARAM) "bold "); 

但我怎么能做出的第一个工作,或者没有办法,有一个比第二个简单的方法是什么?提前致谢。

回答

1

富编辑控件不会以您在第一个代码块中尝试的方式接受RTF。要获得RTF到控件中,您需要使用ES_STREAMIN消息。