void RichEdit::Start() { m_stopped--; if (m_stopped < 0) { m_stopped = 0; return; } if (m_stopped > 0) return; if (m_inverse) { LONG tmp = m_old_sel.cpMin; m_old_sel.cpMin = m_old_sel.cpMax; m_old_sel.cpMax = tmp; } SendMessage(EM_SETEVENTMASK, 0, m_old_mask); SendMessage(EM_EXSETSEL, 0, (LPARAM)&m_old_sel); SendMessage(EM_SETSCROLLPOS, 0, (LPARAM)&m_old_scroll_pos); SendMessage(WM_SETREDRAW, TRUE, 0); InvalidateRect(m_hwnd, NULL, FALSE); ResumeUndo(); }
void RichEdit::Start() { stopped--; if (stopped < 0) { stopped = 0; return; } else if (stopped > 0) return; if (inverse) { LONG tmp = old_sel.cpMin; old_sel.cpMin = old_sel.cpMax; old_sel.cpMax = tmp; } SendMessage(EM_SETEVENTMASK, 0, old_mask); SendMessage(EM_EXSETSEL, 0, (LPARAM)&old_sel); SendMessage(EM_SETSCROLLPOS, 0, (LPARAM)&old_scroll_pos); SendMessage(WM_SETREDRAW, TRUE, 0); InvalidateRect(hwnd, NULL, FALSE); // ShowCaret(hwnd); ResumeUndo(); }
void RichEdit::ReplaceSel(const TCHAR *new_text) { if (m_stopped) { CHARRANGE sel = GetSel(); ResumeUndo(); SendMessage(EM_REPLACESEL, m_undoEnabled, (LPARAM)new_text); SuspendUndo(); FixSel(&m_old_sel, sel, mir_tstrlen(new_text)); SendMessage(WM_SETREDRAW, FALSE, 0); SendMessage(EM_SETEVENTMASK, 0, m_old_mask & ~ENM_CHANGE); } else SendMessage(EM_REPLACESEL, m_undoEnabled, (LPARAM)new_text); }