Сообщение 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).
Вот здесь записал видео, видно как дергается при вводе (и даже при прокрутке, пока происходит парсинг)
То есть получается, пока я парсю текст (сейчас я это делаю в основном потоке, но небольшими порциями по айдлу), полоса прокрутки дергается (заметь, она не только дергается, но и меняет размер), возможно, в то место, где парсила, а возможно, и куда-то непонятно куда.
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).
Вот здесь записал видео, видно как дергается при вводе (и даже при прокрутке, пока происходит парсинг)
То есть получается, пока я парсю текст (сейчас я это делаю в основном потоке, но небольшими порциями по айдлу), полоса прокрутки дергается (заметь, она не только дергается, но и меняет размер), возможно, в то место, где парсила, а возможно, и куда-то непонятно куда. Если я ввожу строго по одному символу (ввел-подождал-ввел-подождал), то ничего не дергается. Если я меняю текст в процессе парсинга (быстро ввожу символы) — дергается.
W>>Понимаешь, если я комментирую сам вызов SetForeColor, то прокрутка дергаться прекращает.
C>А если отключить нотификации от RichEdit на изменение на время вызовы SetForeColor? Через EM_SETEVENTMASK + ENM_CHANGE
C>Ничего не поменяется!:!
Если я отключу нотификацию, то, понятное дело, ничего не будет дергаться, потому что я не буду реагировать на изменение текста и не буду запускать парсер Но если запускать его принудительно, то дергаться начнет, то есть EN_CHANGE никак не влияет.
C>+ опять же, попробовать поймать EN_VSCOLL, оно вообще приходит в момент SetForeColor?
C>Просто странное какое-то дело… У меня аккурат ITextFont::SetForeColor и используется в фоне налево и направо, по любому чиху: ввод, изменение, скроллинг и ни разу ничего подобного года не видел на SetForeColor…
Нет, нотификация EN_VSCROLL не вызывается (даже если явно разрешить ее через SetEventMask).
Вот здесь записал видео, видно как дергается при вводе (и даже при прокрутке, пока происходит парсинг)
То есть получается, пока я парсю текст (сейчас я это делаю в основном потоке, но небольшими порциями по айдлу), полоса прокрутки дергается (заметь, она не только дергается, но и меняет размер), возможно, в то место, где парсила, а возможно, и куда-то непонятно куда. Если я ввожу строго по одному символу (ввел-подождал-ввел-подождал), то ничего не дергается. Если я меняю текст в процессе парсинга (быстро ввожу символы) — дергается.