0

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

更新:

我正在尝试像这样设置文本颜色。

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
4

1 回答 1

1

你的问题很不清楚。狂野刺痛:分配 Text 属性时,您会丢失所有格式。请务必改用 AppendText()。并将 SelectionColor 和 SelectionBackColor 属性设置回为任何文本着色后的状态,以便新输入的文本获得首选的默认颜色。

于 2010-02-17T11:24:25.173 回答