Newsgroup: it.comp.lang.visual-basic
Titolo: API per cambiare la risoluzione

Avevo trovato in qualche sito un esempio su come cambiare la risoluzione da
codice, ma non l'ho scaricato perché pensavo non mi sarebbe mai
servito...... come non detto!
Allora mi sono messo alla ricerca delle API per cambiare la risoluzione
sull'help delle API stesse e ne ho trovate due che sembrano fare al caso
mio:
a) The ChangeDisplaySettings function changes the display settings to the
specified graphics mode.
LONG ChangeDisplaySettings(  LPDEVMODE lpDevMode,  DWORD dwflags )
b) The EnumDisplaySettings function obtains information about one of a
display device's graphics modes. You can obtain information for all of a
display device's graphics modes by making a series of calls to this
function.
BOOL EnumDisplaySettings( LPCTSTR lpszDeviceName, // specifies the display
device DWORD ModeNum, // specifies the graphics mode LPDEVMODE lpDevMode //
points to structure to receive settings)
Ora il mio problema è questo: ho cercato sul visualizzatore delle Api le due
funzioni di cui sopra, ma non ne ho cavato un ragno dal buco e quindi non so
bene come comportarmi.
Se qualcuno potesse aiutarmi...
Penso che questa sarebbe sicuramente una bella funzioncina da inserire nel
sito di cui si parla.
Sempre restando in tema di siti, complimenti a Gianni Zacchia per il suo...
(senza offesa per gli altri)
Grazie e ciao
--
Stefano Zamboni
----------------------------------------------------------------------------
----------------
sz...@XXXtin.it
zam...@XXXfreemail.it
Togliere "XXX" per rispondere
----------------------------------------------------------------------------
----------------

Io tra le faq ho un Getting Screen resolution information se ti č utile
vai a 
http://www.lunet.it/offerte/berti/faqda.htm#form
 troverai il link per
tornare alla pagina di ricerca,vedi un pņ tu.
ciao
carlo
***************************************************
BERTI CARLO ************************************
Visual Basic & HTML *******************************
Http://www.lunet.it/offerte/berti
 ***********************
********************************************************

Grazie e ciao
Inserisci questo codice nella sezione dichiarazione del form1:
Private Declare Function EnumDisplaySettings Lib "user32" Alias _
"EnumDisplaySettingsA" (ByVal lpszDeviceName As Long, _
ByVal iModeNum As Long, lpDevMode As Any) As Boolean
Private Declare Function ChangeDisplaySettings Lib "user32" Alias _
"ChangeDisplaySettingsA" (lpDevMode As Any, ByVal dwflags As Long) As Long
Const CCDEVICENAME = 32
Const CCFORMNAME = 32
Const DM_PELSWIDTH = &H80000
Const DM_PELSHEIGHT = &H100000
Private Type devmode
dmDeviceName As String * CCDEVICENAME
dmSpecVersion As Integer
dmDriverVersion As Integer
dmSize As Integer
dmDriverExtra As Integer
dmFields As Long
dmOrientation As Integer
dmPaperSize As Integer
dmPaperLength As Integer
dmPaperWidth As Integer
dmScale As Integer
dmCopies As Integer
dmDefaultSource As Integer
dmPrintQuality As Integer
dmColor As Integer
dmDuplex As Integer
dmYResolution As Integer
dmTTOption As Integer
dmCollate As Integer
dmFormName As String * CCFORMNAME
dmUnusedPadding As Integer
dmBitsPerPel As Integer
dmPelsWidth As Long
dmPelsHeight As Long
dmDisplayFlags As Long
dmDisplayFrequency As Long
End Type
Dim DevM As devmode
Aggiungi ora 2 pulsanti di comando (Command1 e Command2)
Nell'evento Click di Command1 inserisci:
Dim a As Boolean
Dim i&
' Riceve informazioni sulle possibili combinazioni di risoluzione possibili
i = 0
Do
a = EnumDisplaySettings(0&, i&, DevM)
i = i + 1
Loop Until (a = False)
Nell'evento Click di Command2 inserisci:
' Modifica la risoluzione in 800*600
Dim b&
DevM.dmFields = DM_PELSWIDTH Or DM_PELSHEIGHT
DevM.dmPelsWidth = 800
DevM.dmPelsHeight = 600
b = ChangeDisplaySettings(DevM, 0)
Ciao.