Есть ExamineScreenModes(), она возвращает возможные варианты разрешений.
Так и не понял как можно переключиться на другое разрешение, кругом только чтение. Может это где в другом месте справки есть.
Переключить разрешение монитора
Сообщений 1 страница 9 из 9
Поделиться107.02.2016 07:12:44
Поделиться207.02.2016 16:51:20
Разрешение экрана изменяет функция OpenScreen.
Поделиться308.02.2016 08:13:22
Пробовал, получил чёрный экран на пару секунд, и само всё возвращается назад.
Не получается картинку загрузить с компа, с меня требут флеш подключить.
Это не для игрушки, нужно переключать разрешение монитора, а не экрана, так умеет делать программа H-menu, но её забросили очень давно.
Отредактировано newJS (08.02.2016 08:32:04)
Поделиться408.02.2016 15:44:58
Procedure Change_DisplaySettings(width,height,Depth,Freq,Permanent)
dmScreenSettings.DEVMODE
dmScreenSettings\dmSize = SizeOf(dmScreenSettings)
dmScreenSettings\dmPelsWidth = width
dmScreenSettings\dmPelsHeight = height
dmScreenSettings\dmBitsPerPel = Depth
dmScreenSettings\dmDisplayFrequency=Freq
dmScreenSettings\dmFields = 262144 | 524288 | 1048576
If Permanent
retour=ChangeDisplaySettings_(@dmScreenSettings, 1)
Else
retour=ChangeDisplaySettings_(@dmScreenSettings, 4)
EndIf
ProcedureReturn retour
EndProcedure
;/ Test
Change_DisplaySettings(1024,768,32,60,0)
MessageRequester("Change Display Settings","OK to Restore")Поделиться509.02.2016 05:50:48
Пётр, спасибо, забрал, попробую, здесь не начем.
Хотелось бы комменты, совсем не понятно кто тут от кого произошёл, особенно эта строка dmScreenSettings\dmFields = 262144 | 524288 | 1048576
Поделиться609.02.2016 07:26:32
Работать то оно работает, но с тем же эффектом, что и OpenScreen, тут же само переключается назад, а смысл в таком спец эффекте.
Надо чтобы после переключения все программы продолжали работать до следуещего переключения.
Поделиться709.02.2016 10:33:33
Новое разрешение экрана будет сохраняться до тех пор пока активно запущенное приложение.
Использована процедура из предыдущего примера и просто дополнена AddSysTrayIcon(). Что на счёт такого варианта?
Procedure Change_DisplaySettings(width,height,Depth,Freq,Permanent)
dmScreenSettings.DEVMODE
dmScreenSettings\dmSize = SizeOf(dmScreenSettings)
dmScreenSettings\dmPelsWidth = width
dmScreenSettings\dmPelsHeight = height
dmScreenSettings\dmBitsPerPel = Depth
dmScreenSettings\dmDisplayFrequency=Freq
dmScreenSettings\dmFields = 262144 | 524288 | 1048576
If Permanent
retour=ChangeDisplaySettings_(@dmScreenSettings, 1)
Else
retour=ChangeDisplaySettings_(@dmScreenSettings, 4)
EndIf
ProcedureReturn retour
EndProcedure
Enumeration Window
#MainWindow
EndEnumeration
Enumeration MenuItemID
#MenuItemID_Exit
EndEnumeration
Enumeration SysTrayIcon
#TrayIcon
EndEnumeration
Enumeration Image
#TrayIconImage
EndEnumeration
If CreateImage(#TrayIconImage, 16, 16)
StartDrawing(ImageOutput(#TrayIconImage))
For i=16 To 4 Step -1
Circle(0, 0, i, RGB(16*i, 0, 0))
Next
StopDrawing()
EndIf
If OpenWindow(#MainWindow, #PB_Ignore, #PB_Ignore, 320, 240, "Change Display Settings", #PB_Window_Invisible)
;{ Tray
If AddSysTrayIcon(#TrayIcon, WindowID(#MainWindow), ImageID(#TrayIconImage))
TrayMenu = CreatePopupMenu(#PB_Any)
If IsMenu(TrayMenu)
MenuItem(#MenuItemID_Exit, "Exit")
EndIf
EndIf
;}
Change_DisplaySettings(1024,768,32,60,0)
Repeat
WindowEvent=WindowEvent()
Select WindowEvent
Case #PB_Event_SysTray
If EventType() = #PB_EventType_RightClick
DisplayPopupMenu(TrayMenu, WindowID(#MainWindow))
EndIf
Case #PB_Event_Menu
Select EventMenu()
Case #MenuItemID_Exit
Break
EndSelect
EndSelect
ForEver
CloseWindow(#MainWindow)
EndIf
EndПоделиться809.02.2016 11:42:49
Хотелось бы комменты, совсем не понятно кто тут от кого произошёл, особенно эта строка dmScreenSettings\dmFields = 262144 | 524288 | 1048576
Это нужно изучать описание функции ChangeDisplaySettings (на русском) и структуры DEVMODE (на русском).
Надо чтобы после переключения все программы продолжали работать до следуещего переключения.
Тогда в последнем аргументе должен быть не 0, а 1.
Change_DisplaySettings(1024,768,32,60,1)
Поделиться910.02.2016 07:37:25
Пётр спасибо, это читал, только я уже в том возрасте когда новое даётся с трудом, а виндячие api я вообще не понимаю.
Тигрёнок спасибо, всё забрал, буду пробовать.