2017-02-01 8 views
0

Я довольно новичок в программировании на MFC, C++. Пожалуйста, помогите мне в этом вопросе. В окне редактирования (созданном с помощью CRichEditCtrl) имеется несколько строк. Мне нужно выделить одну строку (с красным цветом) на некоторое время (например: выделить линию 1 в течение 1 секунды и после этого вернуть цвет линии).MFC: Выделите строку в CRichEditCtrl на некоторое время и верните назад

Как я могу это сделать? Заранее спасибо

+0

Вы можете сделать это, используя сообщение EM_SETCHARFORMAT: https://msdn.microsoft.com/en-us/library/windows/desktop/bb774230(v=vs.85).aspx – VuVirt

ответ

0

Сначала установите параметры как этот

`

// Select your string (start is the index in characters (not in lines) 
GetRichEditCtrl().SetSel(nStart, nStart + nLength); 

// Get the CHARFORMAT structure ready 
CHARFORMAT cf; 
cf.cbSize  = sizeof (cf); 
cf.dwEffects = 0; 
cf.dwMask  = CFM_COLOR; 
cf.crTextColor = RGB(255,0,0); 

GetRichEditCtrl().SetSelectionCharFormat(cf); 

`

Затем создайте таймер как с SetTimer(WMT_MYTIMER,1000,NULL), переопределения OnTimer, остановить таймер с KillTimer и сброса цвет, как указано выше

Надеюсь, это поможет!

+0

Это решило его. Большое спасибо – user7499788