Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Screen resolution
Message
De
09/09/2015 06:44:31
Metin Emre
Ozcom Bilgisayar Ltd.
Istanbul, Turquie
 
Information générale
Forum:
Visual FoxPro
Catégorie:
Codage, syntaxe et commandes
Versions des environnements
Visual FoxPro:
VFP 9 SP2
OS:
Windows Server 2012
Network:
Windows 2008 Server
Database:
MS SQL Server
Application:
Web
Divers
Thread ID:
01624301
Message ID:
01624390
Vues:
79
You're welcome...


>Ahh the missing link. Fantastic - works like a charm Thank you Metin - you have solved my problem. And Thanks Tore for the clarification.
>
>karen
>
>
>>you just put the name of .prg files as changeres...
>>
>>>thanks metin. the restore feature may very well work but the changeres() is not recognized syntax in .prg so I have no way to test either.
>>>thanks for the input.
>>>
>>>k
>>>
>>>
>>>
>>>>>Just bought new mini laptop 13.3 with optimal screen resolution 1920x1080. However I need to change that setting to 1280x800 to view all data in VFP window.
>>>>>
>>>>>Is there an initial setting I can change in VFP settings or set up programmatically so that when I start VFP it will change the screen resolution to 1280x800 either for VFP alone or for the whole laptop configuration.
>>>>>
>>>>>tnx k
>>>>
>>>>Use this, it works perfect for me:
>>>>
>>>>
>>>>Lparameters lnWidth, lnHeight
>>>>If Pcount() # 2
>>>>	If Vartype(_Screen.LastWidth)="U"
>>>>		Return
>>>>	Else
>>>>		lnWidth=_Screen.LastWidth
>>>>		lnHeight=_Screen.lastHeight
>>>>	Endif
>>>>Endif
>>>>Clear
>>>>#Define ENUM_CURRENT_SETTINGS -1
>>>>#Define CDS_UPDATEREGISTRY = 0x01
>>>>#Define CDS_TEST 0x02
>>>>#Define DISP_CHANGE_SUCCESSFUL 0
>>>>#Define DISP_CHANGE_RESTART 1
>>>>#Define DISP_CHANGE_FAILED -1
>>>>#Define DM_PELSWIDTH 0x00080000
>>>>#Define DM_PELSHEIGHT 0x00100000
>>>>
>>>>Declare Integer EnumDisplaySettings In win32API ;
>>>>	string deviceName,;
>>>>	integer modeNum, ;
>>>>	string @ lpdevMode
>>>>
>>>>Declare Long ChangeDisplaySettings In win32API ;
>>>>	string lpDevMode, ;
>>>>	integer dwflags
>>>>
>>>>lpdevMode = Replicate(Chr(0),512)
>>>>
>>>>EnumDisplaySettings(0,ENUM_CURRENT_SETTINGS,@lpdevMode)
>>>>
>>>>* Save previous resolution
>>>>
>>>>_Screen.AddProperty("LastWidth",CToBin(Substr(m.lpdevMode,109,4),"4RS"))
>>>>_Screen.AddProperty("LastHeight",CToBin(Substr(m.lpdevMode,113,4),"4RS"))
>>>>* Check if not the same, no use to change when the same
>>>>If _Screen.LastWidth # m.lnWidth or _Screen.LastHeight # m.lnHeight
>>>>	Wait Window "Ekran çözünürlüğü ayarlanıyor..." At Srows()/2,Scols()/2-10 Nowait
>>>>	lpdevMode = Stuff(m.lpdevMode,41,4,BinToC(DM_PELSWIDTH+DM_PELSHEIGHT,"4RS"))
>>>>	lpdevMode = Stuff(m.lpdevMode,109,4,BinToC(lnWidth,"4RS"))
>>>>	lpdevMode = Stuff(m.lpdevMode,113,4,BinToC(lnHeight,"4RS"))
>>>>	result = ChangeDisplaySettings(m.lpdevMode,CDS_TEST)
>>>>	If !( result = DISP_CHANGE_SUCCESSFUL )
>>>>*Wait Window "Mode not supported." Timeout 1
>>>>		Return .F.
>>>>	Else
>>>>		ChangeDisplaySettings(m.lpdevMode,0)
>>>>	Endif
>>>>Endif
>>>>Return
>>>>Endfunc
>>>>
>>>>*!*    Source Code From Cetin BASOZ
>>>>*!*	To use it, just place it somewhere in your app like this:
>>>>*!*	ChangeRes(1024,768)
>>>>*!*	That means I am forcing the screen to have a resolution of 1024x768. When I exit my main form, in the unload event I place this:
>>>>*!*	ChangeRes(_Screen.LastWidth,_Screen.lastHeight)
>>>>*!*	And that would restore the previous screen resolution.
>>>>
Précédent
Répondre
Fil
Voir

Click here to load this message in the networking platform