powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Windows [игнор отключен] [закрыт для гостей] / Как на XP выключить непрерывную перерисовку окна?
3 сообщений из 3, страница 1 из 1
Как на XP выключить непрерывную перерисовку окна?
    #38179010
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну т.е. тянешь за угол формы, содержимое окна перерисовывается в процессе движения.

На Win 2003, на Win 8 и на всех прочих серверах этот мультфильм отключен, т.е. пользователь при перемещении видит только контур окна.

В одном из окон своей программы обнаружил глюк, во втором варианте часть элементов формы не перерисовывается
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
    ' See if this is a WM_SIZE or WM_SIZING or WM_SHOWWINDOW message.
    If (Msg = WM_SIZE) Or (Msg = WM_SIZING) Or (Msg = WM_SHOWWINDOW) Then
        ChangeOurFramePosition hwnd
        'чтобы элементы не наложились
        Call RedrawWindow(gFrameLabelPages.hwnd, ByVal 0&, ByVal 0&, RDW_INVALIDATE Or RDW_FRAME Or RDW_UPDATENOW)
        Call RedrawWindow(gFramePicture.hwnd, ByVal 0&, ByVal 0&, RDW_INVALIDATE Or RDW_FRAME Or RDW_UPDATENOW)
        Call RedrawWindow(frmControls.PicturePre.hwnd, ByVal 0&, ByVal 0&, RDW_INVALIDATE Or RDW_FRAME Or RDW_UPDATENOW)
        Call RedrawWindow(hStatusBarWnd, ByVal 0&, ByVal 0&, RDW_INVALIDATE Or RDW_FRAME Or RDW_UPDATENOW)
    End If
    If Msg = WM_EXITSIZEMOVE Then
        gToolbarPrevNext.Refresh 'тулбар перерисовываем только в конце
    End If


скорее всего WM_SIZE Or WM_SIZING Or WM_SHOWWINDOW
не срабатывают
и надо что-то другое,
м.б.
WM_WINDOWPOSCHANGING/ WM_WINDOWPOSCHANGED

Но я работаю (там могу запускать прогу в студии) в XP, где непрерывная перерисовка и код срабатывает.
Компилировать - пулять exe -проверять - гадать неудобно.
Поэтому как временно отключить?
...
Рейтинг: 0 / 0
Как на XP выключить непрерывную перерисовку окна?
    #38179015
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кажется, нашел.

Свойства-> Оформление -> Эффекты -> Отображать сожержимое окна при перетаскивании
...
Рейтинг: 0 / 0
Как на XP выключить непрерывную перерисовку окна?
    #38179093
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий77В одном из окон своей программы обнаружил глюк, во втором варианте часть элементов формы не перерисовывается
Код: vbnet
1.
2.
3.
4.
    ' See if this is a WM_SIZE or WM_SIZING or WM_SHOWWINDOW message.
    If (Msg = WM_SIZE) Or (Msg = WM_SIZING) Or (Msg = WM_SHOWWINDOW) Then
        ChangeOurFramePosition hwnd
 ...


скорее всего WM_SIZE Or WM_SIZING Or WM_SHOWWINDOW
не срабатывают
и надо что-то другое,
м.б.
WM_WINDOWPOSCHANGING/ WM_WINDOWPOSCHANGED

О, и сразу вылечил - теперь в обоих вариантах все сразу перерисовывается.
Код: vbnet
1.
2.
3.
    If (Msg = WM_SIZE) Or (Msg = WM_SIZING) Or (Msg = WM_SHOWWINDOW)  Or (Msg = WM_EXITSIZEMOVE) Then
        ChangeOurFramePosition hwnd
...


А то в Win8 непрерывной перерисовки нет, а таки пользовательская система. Надо уважить user-а .
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Windows [игнор отключен] [закрыт для гостей] / Как на XP выключить непрерывную перерисовку окна?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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