Переключение окна в полноэкранный режим и обратно
Смотрел тут очередную киношку на своем любимом плеере Light Alloy и впервые за много лет обратил внимание, как он переключается в полноэкранный режим, а затем обратно. Нет, про само переключение, естественно, я знал и использовал, просто внезапно захотелось сделать что-нибудь подобное для оконного приложения на не менее любимом Ассемблере.Вот обработчик переключения. Он будет двухпозиционный, то есть если окно уже находится в полноэкранном режиме, то вернет его к исходному виду, а иначе развернет на полный экран. Естественно, вы можете разделить его на два отдельных события или оставить только нужную часть, например, только переход в полноэкранный режим.
Code (Assembler) : Убрать нумерацию
- invoke GetWindowLong,[hwnddlg],GWL_STYLE
- ; EBX - текущий стиль окна
- mov ebx,eax
- test ebx,WS_OVERLAPPEDWINDOW
- jz .fullscreen_off
- .fullscreen_on:
- and ebx,not WS_OVERLAPPEDWINDOW
- invoke SetWindowLong,[hwnddlg],GWL_STYLE,ebx
- invoke ShowWindow,[hwnddlg],SW_MAXIMIZE
- jmp .processed
- .fullscreen_off:
- or ebx,WS_OVERLAPPEDWINDOW
- invoke SetWindowLong,[hwnddlg],GWL_STYLE,ebx
- invoke ShowWindow,[hwnddlg],SW_RESTORE
- jmp .processed
В приложении пример программы с исходным текстом, которая по правому клику мышки на окне переключается в полноэкранный режим и обратно.
Просмотров: 1311 | Комментариев: 0
Внимание! Статья опубликована больше года назад, информация могла устареть!
Комментарии
Отзывы посетителей сайта о статье
Комментариeв нет
Добавить комментарий
Заполните форму для добавления комментария