Rich Edit Control中的颜色更改

时间:2010-02-17 02:28:52

标签: winapi richedit-control

删除彩色文字时。默认情况下,控件将新输入的文本颜色设置回最近擦除的颜色。你怎么能避免这种情况?在键入之前你需要检查每个字符样式吗?

更新

我正试图像这样设置文字颜色。

SendMessage(hEdit, EM_SETSEL, start_pos, end_pos); //select text for coloring

        CHARFORMAT cf;
        memset( &cf, 0, sizeof cf );
        cf.cbSize = sizeof cf;
        cf.dwMask = CFM_COLOR;
        cf.crTextColor = RGB(255,0,0);
        SendMessage( hEdit , EM_SETCHARFORMAT, SCF_SELECTION, (LPARAM) &cf);

        SendMessage(hEdit, EM_SETSEL, -1, 0 ); //deselect text
        cf.crTextColor = RGB(0,0,0); //reset colour
        SendMessage( hEdit , EM_SETCHARFORMAT, SCF_SELECTION, (LPARAM) &cf); //set colour

1 个答案:

答案 0 :(得分:1)

你的问题很不清楚。狂野刺伤:分配Text属性时会丢失所有格式。一定要使用AppendText()。并将SelectionColor和SelectionBackColor属性设置回颜色化任何文本后的内容,以便新输入的文本获得首选的默认颜色。