Информация об изменениях

Сообщение Re[6]: ITextFont::SetForeColor дергает полосу прокрутки от 24.08.2020 6:10

Изменено 24.08.2020 6:14 Went

Re[6]: ITextFont::SetForeColor дергает полосу прокрутки
Здравствуйте, Carc, Вы писали:

W>>Понимаешь, если я комментирую сам вызов SetForeColor, то прокрутка дергаться прекращает.

C>А если отключить нотификации от RichEdit на изменение на время вызовы SetForeColor? Через EM_SETEVENTMASK + ENM_CHANGE
C>Ничего не поменяется!:!
Если я отключу нотификацию, то, понятное дело, ничего не будет дергаться, потому что я не буду реагировать на изменение текста и не буду запускать парсер Но если запускать его принудительно, то дергаться начнет, то есть EN_CHANGE никак не влияет.

C>+ опять же, попробовать поймать EN_VSCOLL, оно вообще приходит в момент SetForeColor?

C>Просто странное какое-то дело… У меня аккурат ITextFont::SetForeColor и используется в фоне налево и направо, по любому чиху: ввод, изменение, скроллинг и ни разу ничего подобного года не видел на SetForeColor…
Нет, нотификация EN_VSCROLL не вызывается (даже если явно разрешить ее через SetEventMask).

Вот здесь записал видео, видно как дергается при вводе (и даже при прокрутке, пока происходит парсинг)
То есть получается, пока я парсю текст (сейчас я это делаю в основном потоке, но небольшими порциями по айдлу), полоса прокрутки дергается (заметь, она не только дергается, но и меняет размер), возможно, в то место, где парсила, а возможно, и куда-то непонятно куда.
Re[6]: ITextFont::SetForeColor дергает полосу прокрутки
Здравствуйте, Carc, Вы писали:

W>>Понимаешь, если я комментирую сам вызов SetForeColor, то прокрутка дергаться прекращает.

C>А если отключить нотификации от RichEdit на изменение на время вызовы SetForeColor? Через EM_SETEVENTMASK + ENM_CHANGE
C>Ничего не поменяется!:!
Если я отключу нотификацию, то, понятное дело, ничего не будет дергаться, потому что я не буду реагировать на изменение текста и не буду запускать парсер Но если запускать его принудительно, то дергаться начнет, то есть EN_CHANGE никак не влияет.

C>+ опять же, попробовать поймать EN_VSCOLL, оно вообще приходит в момент SetForeColor?

C>Просто странное какое-то дело… У меня аккурат ITextFont::SetForeColor и используется в фоне налево и направо, по любому чиху: ввод, изменение, скроллинг и ни разу ничего подобного года не видел на SetForeColor…
Нет, нотификация EN_VSCROLL не вызывается (даже если явно разрешить ее через SetEventMask).

Вот здесь записал видео, видно как дергается при вводе (и даже при прокрутке, пока происходит парсинг)
То есть получается, пока я парсю текст (сейчас я это делаю в основном потоке, но небольшими порциями по айдлу), полоса прокрутки дергается (заметь, она не только дергается, но и меняет размер), возможно, в то место, где парсила, а возможно, и куда-то непонятно куда. Если я ввожу строго по одному символу (ввел-подождал-ввел-подождал), то ничего не дергается. Если я меняю текст в процессе парсинга (быстро ввожу символы) — дергается.