Следующий код реагирует на изменение высоты окна.Он не реагирует на ширину окна, это ограничение Dynpro, поэтому большую часть времени он будет реагировать на сворачивание и восстановление кнопок Windows, если только окно не является точной половиной левого или половинного правого угла монитора (комбинированные клавиши Windows + Left иWindows + Right).SY-SCOLS и SY-SROWS - единственный известный мне способ получения размера окна при отображении экрана dynpro, но, возможно, существуют и другие способы.
DATA go_docking TYPE REF TO cl_gui_docking_container.
DATA ok_code TYPE syucomm.
DATA ratio TYPE i VALUE 70.
DATA pixels_by_sy_scol TYPE p DECIMALS 2.
CALL SCREEN 100.
MODULE pbo OUTPUT.
IF go_docking IS INITIAL.
CREATE OBJECT go_docking
EXPORTING
repid = sy-repid
dynnr = sy-dynnr
side = cl_gui_docking_container=>dock_at_left
ratio = ratio.
go_docking->get_extension( IMPORTING extension = DATA(extension) ).
cl_gui_cfw=>flush( ). " to calculate the extension (by default in pixels)
pixels_by_sy_scol = extension * 100 / ratio / sy-scols.
ELSE.
go_docking->set_extension( sy-scols * pixels_by_sy_scol * ratio / 100 ).
ENDIF.
ENDMODULE.