powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / ListView мерцает при заполнении записями
7 сообщений из 7, страница 1 из 1
ListView мерцает при заполнении записями
    #33482370
Pantalone
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это происходит если при добавлении выполнять DoEvents
Как бы это безобразие прекратить?
...
Рейтинг: 0 / 0
ListView мерцает при заполнении записями
    #33483944
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
попробуй так.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Private Declare Function LockWindowUpdate Lib "user32.dll" (ByVal hwndLock As Long) As Long

  'заморозка
  If LockWindowUpdate(Me.hWnd) =  0  Then
    LockWindowUpdate  0 &
    LockWindowUpdate Me.hWnd
  End If

... твой код

   ' разморозка
   LockWindowUpdate  0 &

дуивентом прогрессбар обновляешь самописный?
лучше поискать другой вариант обновления окна.
посмотри что-нибудь типа:
Private Declare Function UpdateWindow Lib "user32.dll" (ByVal hwnd As Long) As Long
...
Рейтинг: 0 / 0
ListView мерцает при заполнении записями
    #33483952
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кстати, проверил
LockWindowUpdate ListView1.hWnd
...
LockWindowUpdate 0&

тоже работает.
...
Рейтинг: 0 / 0
ListView мерцает при заполнении записями
    #33484357
Pantalone
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Виктоша, спасибо, но мне нужно чтобы юзер мог на кнопку отмены нажать, за заголовок окно тащить, без DoEvents это не получится.
Ты этот пример без DoEvents наверное имеешь в виду, а с ним все опять замерцает.
...
Рейтинг: 0 / 0
ListView мерцает при заполнении записями
    #33484451
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PantaloneВиктоша, спасибо, но мне нужно чтобы юзер мог на кнопку отмены нажать, за заголовок окно тащить, без DoEvents это не получится.
Ты этот пример без DoEvents наверное имеешь в виду, а с ним все опять замерцает.
не "этот".
незамороженное окно, на котором проходили изменения содержания обязательно будет моргать при выполнении DoEvents.

замороженное окно формы мерцать не будет. у меня не мерцает и по последнему варианту LockWindowUpdate ListView1.hWnd

попробуй.

что до DoEvents - дело даже не столько в его катастрофической тормознутости, сколько в способе "обеспечении доступности" твоего собственного приложения. в том самом нажатии кнопок.
если ты сознательно используешь дуивенс именно для этой цели, то необходимо приложение специальных усилий для предотвращения побочных последствий.
фактически тогда ты обязан ввести дополнительные правила кодирования своих форм. Типа - ввсести состояния "рассчитываю то или сё".
иначе иногда пользователь будет сильно удивляться, а ты не понимать, что он тебе рассказывает.
Применительно к отмене расчета и даже протаскиванию окна формы можно
(думаю, и весьма желательно именно для предотвращения побочных последствий повторного входа в процедуры обработки событий или их пропуска) обойтись без дуивентс настолько, насколько это вообще возможно.

смотри в тырнете примеры на использование
GetInputState и рядом на функции работы с очередями сообщений.

простейший вариант
If GetInputState() Then DoEvents

но он для ускорения по сравнению с "голым" DoEvents.

обработав самостоятельно накопившуюся очередь сообщений можно обойтись совсем без DoEvents.

Правда из всего этого не следует, что исключение DoEvents гарантирует уход от ясного создания модели состояний твоей формы.
...
Рейтинг: 0 / 0
ListView мерцает при заполнении записями
    #33484534
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
уточнение:
я работаю исключительно с "классическим" рабочим столом.
Без всяких XP стилей. Что будет, если разрешить применение стилей - не проверял.
Надеюсь, тоже не будет мерцать.
...
Рейтинг: 0 / 0
ListView мерцает при заполнении записями
    #33484548
Pantalone
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо!
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / ListView мерцает при заполнении записями
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]