Пример #1
0
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();
}
Пример #2
0
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();
}
Пример #3
0
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);
}