Что нового

На GUI с объектом IE не обновляется содержание страницы

darkwhite

Знающий
Сообщения
129
Репутация
5
Проблема вот в чем

есть форма
Код:
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <IE.au3>


$iW = @DesktopWidth *0.95
$iH = @DesktopHeight * 0.95
#Region Forma
$chat = GUICreate("Чат",$iW , $iH, -1, -1, BitOR($GUI_SS_DEFAULT_GUI, $WS_THICKFRAME, $WS_OVERLAPPEDWINDOW, $WS_TILEDWINDOW, $WS_TABSTOP));, $WS_EX_COMPOSITED)
		$oIE = ObjCreate("Shell.Explorer.2")
		$GUIActiveX = GUICtrlCreateObj($oIE, -55, 20, $iW*1.1, $iH*0.92)
		GUICtrlSetResizing($GUIActiveX, $GUI_DOCKBORDERS)
		_IENavigate($oIE, "http://globalchat-eu-pub-01.bigpoint.net/chattool/")

GUISetState()
WinSetState($chat,"",@SW_MAXIMIZE)
#EndRegion Forma


While 1

	Switch GUIGetMsg()
        Case $GUI_EVENT_CLOSE
            Exit
	EndSwitch
WEnd


если переключаться на другие окна и обратно - то рано или позно настает момент когда вместо IE объекта только белый фон - и элементы страницы появляются если провести мышкой над ними.

С чем это может быть связано и можно ли с этим что то сделать ?
 

gregaz

AutoIT Гуру
Сообщения
1,166
Репутация
299
darkwhite [?]
если переключаться на другие окна и обратно - то рано или позно настает момент когда вместо IE объекта только белый фон - и элементы страницы появляются если провести мышкой над ними.

Я сам сталкивался с подобным эффектом, и разрешить его корректно не смог.
Он проявляется после изменения размеров окна , например : @SW_MAXIMIZE (похоже это связано со св-вами самого окбъекта)

Помогает иногда использование расширенного стиля $WS_EX_COMPOSITED
Код:
$chat = GUICreate("Чат",$iW , $iH, -1, -1, BitOR($GUI_SS_DEFAULT_GUI, $WS_THICKFRAME, $WS_OVERLAPPEDWINDOW, $WS_TILEDWINDOW, $WS_TABSTOP), $WS_EX_COMPOSITED)


но он не применим,если в окне есть ListView

Еще пара не совсем корректных вариантов : Выполнить в том месте , где проявляется этот эффект :
1. Временное небольшое изменение размеров окна , с возвратом
Код:
WinMove ("Чат", "", -1, -1 , $iW, $iH-10)
WinMove ("Чат", "", -1, -1 , $iW, $iH)

2. Обновление страницы
Код:
_IEAction($oIE, "Refresh")


Кстати , может лучше вынести загрузку страницы после появления самого окна ?
Код:
GUISetState()
WinSetState($chat,"",@SW_MAXIMIZE)
 _IENavigate($oIE, "http://globalchat-eu-pub-01.bigpoint.net/chattool/")
 
Автор
D

darkwhite

Знающий
Сообщения
129
Репутация
5
пробовал свернуть развернуть - когда окно становилось активным не помогло ((
 

gregaz

AutoIT Гуру
Сообщения
1,166
Репутация
299
darkwhite [?]
пробовал свернуть развернуть - когда окно становилось активным не помогло ((
А что стиль $WS_EX_COMPOSITED тоже не помог?
Похоже причина у тебя не в этом, а возможно где-то происходит перекрытие размеров элементов окон (Повторяюсь: активные элементы окна не должны перекрываться друг с другом). нужно деактивировать одно изи них
 
Верх