|
|
|
mudd69
|
Posted:
Sun Feb 18, 2007 1:22 am |
|
|
|
PRO New Member
Joined: 18 Feb 2007
Posts: 1
|
|
Hey I want to change the screen resolution on Windows, usingg Borland C++. How can I do it? Thanks!
|
|
|
|
|
|
|
|
Back to top
|
|
|
|
kd1966
Kevin Durbin |
Posted:
Sun Feb 18, 2007 11:36 pm |
|
|
|
PROfessional Member
Joined: 08 Aug 2005
Posts: 9207
Location: USA - GSO - NC
|
|
Hi and welcome to PROnetworks!! Apologize for missing your post; the weekends are the toughest for getting support anywhere, and we are all volunteers here. Please be patient as our members check in periodically and look at your issue; enjoy the site!!
|
|
|
|
|
|
|
|
Back to top
|
|
|
|
shougan
Sid Upadhyay |
Posted:
Sun Feb 18, 2007 11:54 pm |
|
|
|
PRO GOLD
Joined: 26 Apr 2004
Posts: 5290
Location: Western Hemisphere
|
Well I'm more of a java programmer, but this made sense;
| Code: |
Option Explicit
Const DM_BITSPERPEL As Long = &H40000
Const DM_PELSWIDTH As Long = &H80000
Const DM_PELSHEIGHT As Long = &H100000
Const CDS_FORCE As Long = &H80000000
Const CCDEVICENAME As Long = 32
Const CCFORMNAME As Long = 32
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 Long
dmPelsWidth As Long
dmPelsHeight As Long
dmDisplayFlags As Long
dmDisplayFrequency As Long
End Type
Private Declare Function EnumDisplaySettings Lib "user32" Alias _
"EnumDisplaySettingsA" (ByVal lpszDeviceName As Long, _
ByVal modeIndex As Long, lpDevMode As Any) As Boolean
Private Declare Function ChangeDisplaySettings Lib "user32" Alias _
"ChangeDisplaySettingsA" (lpDevMode As Any, ByVal dwflags As Long) As Long
' change the screen resolution mode
'
' returns True if the requested resolution mode is among those
' supported by the display adapter (otherwise it doesn't even
' try to change the screen resolution)
Function ChangeScreenResolution(ByVal Width As Long, ByVal Height As Long, _
ByVal NumColors As Long, Optional Frequency As Long) As Boolean
Dim lpDevMode As DEVMODE
Dim index As Long
' set the DEVMODE flags and structure size
lpDevMode.dmSize = Len(lpDevMode)
lpDevMode.dmFields = DM_PELSWIDTH Or DM_PELSHEIGHT Or DM_BITSPERPEL
' retrieve info on the Nth display mode, exit if no more
Do While EnumDisplaySettings(0, index, lpDevMode) > 0
' check whether this is the mode we're looking for
If lpDevMode.dmPelsWidth = Width And lpDevMode.dmPelsHeight = Height _
And 2 ^ lpDevMode.dmBitsPerPel = NumColors Then
' check that the frequency is also the one we're looking for
If Frequency = 0 Or Frequency = lpDevMode.dmDisplayFrequency Then
' try changing the resolution
If ChangeDisplaySettings(lpDevMode, CDS_FORCE) = 0 Then
' zero means success
ChangeScreenResolution = True
Exit Do
End If
End If
End If
' skip to next screen mode
index = index + 1
Loop
End Function |
|
|
|
|
|
|
|
|
Back to top
|
|
|
|
toxic chicken
|
Posted:
Wed Feb 21, 2007 12:45 am |
|
|
|
PRO Level 8
Joined: 20 Apr 2006
Posts: 314
Location: nowhere, washington.
|
this was in one of the example archive things i found. a little smaller than sid's.
| Code: |
#include <windows>
#include <iostream>
int main()
{
int w=1024;
int h=768;
int d=32;
DEVMODE sDevMode;
ZeroMemory(&sDevMode, sizeof(DEVMODE));
sDevMode.dmSize = sizeof(DEVMODE);
sDevMode.dmPelsWidth = w;
sDevMode.dmFields |= DM_PELSWIDTH;
sDevMode.dmPelsHeight = h;
sDevMode.dmFields |= DM_PELSHEIGHT;
sDevMode.dmBitsPerPel = d;
sDevMode.dmFields |= DM_BITSPERPEL;
LONG rVal = ChangeDisplaySettings(&sDevMode, CDS_UPDATEREGISTRY);
switch (rVal)
{
case DISP_CHANGE_SUCCESSFUL: //The settings change was successful.
break;
default:
cout << "Error.";
break;
}
return 0;
}
|
|
|
|
|
|
|
|
|
Back to top
|
|
|
|
swayzesloan
|
Posted:
Sat Feb 02, 2008 3:20 pm |
|
|
|
PRO New Member
Joined: 02 Feb 2008
Posts: 1
|
|
this code worked great for me toxic chicken, all i had to do was change "#include <windows>" to "#include <windows>".
|
|
|
|
|
|
|
|
Back to top
|
|
|
|
|
Back to top |
|
|
|
|
|