Change/save Screen-resolution to Applic.-resol. at Runtime ?
Change/save Screen-resolution to Applic.-resol. at Runtime ?
Hello,
I found some API-functions to make it possible, to adjust the Screen-resolution
to Application-resolution.
Does it make sense, to adjust it at Prog-start and restore the original Resolution at Prog.-end ?
I don't know, if it is possible, to change the Resolution in silent-mode.
Maybe somebody found a working Solution ?
// get existing Resolution
Declare Function EnumDisplaySettings Lib "user32" Alias "EnumDisplaySettingsA" _
(ByVal lpszDeviceName As Long, ByVal iModeNum As Long, lptypDevMode As Any) As Boolean
// Change Resolution
Declare Function ChangeDisplaySettings Lib "user32" Alias "ChangeDisplaySettingsA" _
(lptypDevMode As Any, ByVal dwFlags As Long) As Long
// Exit Windows
Declare Function ExitWindowsEx Lib "user32" (ByVal uFlags As Long, ByVal dwReserved _
As Long) As Long
Best Regards
Uwe
I found some API-functions to make it possible, to adjust the Screen-resolution
to Application-resolution.
Does it make sense, to adjust it at Prog-start and restore the original Resolution at Prog.-end ?
I don't know, if it is possible, to change the Resolution in silent-mode.
Maybe somebody found a working Solution ?
// get existing Resolution
Declare Function EnumDisplaySettings Lib "user32" Alias "EnumDisplaySettingsA" _
(ByVal lpszDeviceName As Long, ByVal iModeNum As Long, lptypDevMode As Any) As Boolean
// Change Resolution
Declare Function ChangeDisplaySettings Lib "user32" Alias "ChangeDisplaySettingsA" _
(lptypDevMode As Any, ByVal dwFlags As Long) As Long
// Exit Windows
Declare Function ExitWindowsEx Lib "user32" (ByVal uFlags As Long, ByVal dwReserved _
As Long) As Long
Best Regards
Uwe
Last edited by ukoenig on Thu Apr 07, 2011 8:16 am, edited 1 time in total.
Since 1995 ( the first release of FW 1.9 )
i work with FW.
If you have any questions about special functions, maybe i can help.
i work with FW.
If you have any questions about special functions, maybe i can help.
Re: Changing Screen-resolution to Applic.-resol. at Runtime ?
Uwe,
I think that this code does what you need...
I think that this code does what you need...
Code: Select all
CamReso ( 1024, 768, .f. )
Code: Select all
///////////////////////////////////////////////////////////////////
/// FUNCION CamReso
/// CAMBIA RESOLUCION DE PANTALLA TEMPORALMENTE
/// Manuel Valdenebro 2008
/// Adaptación ChangeRes() Marcelo Gomes/Yuri Marcelino
/// http://www.fivewin.com.br/forum/topic.asp?TOPIC_ID=10465
/// ---------------------------------------
// nAncho ancho pantalla
// nAlto alto pantalla
// lPreguntar si pregunta antes de realizar el cambio
///////////////////////////////////////////////////////////////////
#Include "dll.ch"
#Include "Struct.ch"
Function CamReso(nAncho, nAlto, lPreguntar)
Local DM_PELSWIDTH := nHex("80000")
Local DM_PELSHEIGHT := nHex("100000")
Local oDevMode
Local lPosible
Local cBuffer
Local lCamReso := .f.
*DEFAULT lPreguntar := .t.
*DEFAULT nAlto := GetSysMetrics(1)
*DEFAULT nAncho := GetSysMetrics(0)
STRUCT oDevMode
MEMBER cDevName AS STRING LEN 32
MEMBER nSpecVer AS WORD
MEMBER nDrvVer AS WORD
MEMBER nSize AS WORD
MEMBER nDrvExtra AS WORD
MEMBER nFields AS DWORD
MEMBER nOrientat AS WORD
MEMBER nPaperSiz AS WORD
MEMBER nPaperLen AS WORD
MEMBER nPaperWid AS WORD
MEMBER nScale AS WORD
MEMBER nCopies AS WORD
MEMBER nDefSrc AS WORD
MEMBER nPrnQlty AS WORD
MEMBER nColor AS WORD
MEMBER nDuplex AS WORD
MEMBER nYResolut AS WORD
MEMBER nTTOpt AS WORD
MEMBER nCollate AS WORD
MEMBER cFormName AS STRING LEN 32
MEMBER nUnusePad AS WORD
MEMBER nBitsPPel AS DWORD
MEMBER nPelWidth AS DWORD
MEMBER nPelHeigh AS DWORD
MEMBER nDisFlags AS DWORD
MEMBER nDisFreq AS DWORD
ENDSTRUCT
cBuffer := oDevMode:cBuffer
// Comprueba si es posible cambiar la resolución
lPosible := EnumDisplaySettings(0, 0, @cBuffer)
// Si es posible cambiar la resolución
IF lPosible
if lPreguntar
if MsgYesNo("Desea cambiar la resolución?", "Atención")
else
RETURN lCamReso
endif
endi
oDevMode:nFields := nOr(DM_PELSWIDTH, DM_PELSHEIGHT )
oDevMode:nPelWidth := nAncho
oDevMode:nPelHeigh := nAlto
cBuffer:=oDevMode:cBuffer
TRY
ChangeDisplaySettings(@cBuffer, 4)
lCamReso := .T.
CATCH
MsgAlert("Modo no soportado", "Error" )
END
else
MsgAlert("Modo no soportado", "Error" )
endif
return lCamReso
DLL32 FUNCTION EnumDisplaySettings(lpszDeviceName AS DWORD,;
iModeNum AS DWORD, ;
@lpDevMode AS LPSTR) AS BOOL PASCAL;
FROM "EnumDisplaySettingsA" LIB "User32.dll"
DLL32 FUNCTION ChangeDisplaySettings(@lpDevMode AS LPSTR,;
dwFlags AS DWORD) AS DWORD;
FROM "ChangeDisplaySettingsA" LIB "User32.dll"
DLL32 FUNCTION ExitWindowsEx(uFlags AS DWORD,;
dwReserved AS DWORD) AS DWORD PASCAL;
LIB "user32.dll"
=====>
Bayron Landaverry
(215)2226600 Philadelphia,PA, USA
+(502)46727275 Guatemala
MayaBuilders@gMail.com
FWH12.04||Harbour 3.2.0 (18754)||BCC6.5||UEstudio 10.10||
Windows 7 Ultimate
FiveWin, One line of code and it's done...
Bayron Landaverry
(215)2226600 Philadelphia,PA, USA
+(502)46727275 Guatemala
MayaBuilders@gMail.com
FWH12.04||Harbour 3.2.0 (18754)||BCC6.5||UEstudio 10.10||
Windows 7 Ultimate
FiveWin, One line of code and it's done...
Re: Changing Screen-resolution to Applic.-resol. at Runtime ?
Hello Byron,
Thank You very much.
The Function works perfect.
But there is still a problem, I have to find out :
After changing the Screen-resolution, I get a System-Message : cannot continue.
Maybe I have to create a extra small Exe-file.
I tested a PRG-Structure like :
Best Regards
Uwe
Thank You very much.
The Function works perfect.
But there is still a problem, I have to find out :
After changing the Screen-resolution, I get a System-Message : cannot continue.
Maybe I have to create a extra small Exe-file.
I tested a PRG-Structure like :
Code: Select all
Function MAIN()
..
..
IF CHANGE_SCR(1152, 864, .T.) = .F. // new Resolution
MsgAlert( "Cannot change Screen-resolution !","Attention"
ELSE
DEFINE DIALOG oWndMain FROM 0, 0 TO 260, 400 PIXEL TRANSPARENT ;
STYLE WS_POPUP | WS_VISIBLE | WS_DLGFRAME | WS_THICKFRAME
..
..
ACTIVATE DIALOG oWndMain CENTERED
CHANGE_SCR( 1024, 768, .T.) // old Resolution
ENDIF
RETURN NIL
Uwe
Since 1995 ( the first release of FW 1.9 )
i work with FW.
If you have any questions about special functions, maybe i can help.
i work with FW.
If you have any questions about special functions, maybe i can help.
Re: Changing Screen-resolution to Applic.-resol. at Runtime ?
Hi Uwe, the function should be called with .F. so It does not ask's for confirmation to change the resolution
Maybe that is the problem, or it may be a problem with your video card????
I used it a while ago and did not had problems...
If you post an compiled example, I can test in my computer to see if gives me the same problem....
Code: Select all
CHANGE_SCR(1152, 864, .F.)
I used it a while ago and did not had problems...
If you post an compiled example, I can test in my computer to see if gives me the same problem....
=====>
Bayron Landaverry
(215)2226600 Philadelphia,PA, USA
+(502)46727275 Guatemala
MayaBuilders@gMail.com
FWH12.04||Harbour 3.2.0 (18754)||BCC6.5||UEstudio 10.10||
Windows 7 Ultimate
FiveWin, One line of code and it's done...
Bayron Landaverry
(215)2226600 Philadelphia,PA, USA
+(502)46727275 Guatemala
MayaBuilders@gMail.com
FWH12.04||Harbour 3.2.0 (18754)||BCC6.5||UEstudio 10.10||
Windows 7 Ultimate
FiveWin, One line of code and it's done...
Re: Changing Screen-resolution to Applic.-resol. at Runtime ?
Hello Byron,
the Screenshots of my Tests :
started with 1152 x 864
switching to Application Screen-resolution 1024 x 768,
the Application stopps.
Maybe it is a Dialog and not a Window ?
The Main-prgstructure :
Added to Sample : Testbtn.prg
I got the same Result. After changing the Screen-resolution
Message : Testbtn.exe doesn't work anymore ....
Best Regards
Uwe
the Screenshots of my Tests :
started with 1152 x 864
switching to Application Screen-resolution 1024 x 768,
the Application stopps.
Maybe it is a Dialog and not a Window ?
The Main-prgstructure :
Code: Select all
FUNCTION MAIN()
LOCAL oWndMain
LOCAL nScrwidth := GetSysmetrics( 0 )
LOCAL nScrheight := GetSysmetrics( 1 )
LOCAL cRestart := "NO"
...
...
SetBalloon( .T. ) // Balloon shape required for tooltips
c_path := CURDRIVE() + ":\" + GETCURDIR()
IF nScrwidth <> 1024 .and. nScrheight <> 768
cRestart := "YES"
ENDIF
oFont1 := TFont():New( "Arial", 0, 16,.F.,.T., 0, 0, 0,.F.,.F.)
DEFINE BITMAP oAlpha FILENAME c_Path + "\bitmaps\LOGO2.bmp"
DEFINE DIALOG oWndMain FROM 0, 0 TO 260, 400 PIXEL TRANSPARENT ;
STYLE WS_POPUP | WS_VISIBLE | WS_DLGFRAME | WS_THICKFRAME
...
...
@ 90, 125 BTNBMP oBtn5 OF oWndMain ;
SIZE 40, 40 ;
TOP NOBORDER ;
FILE c_path + "\Bitmaps\32Screen.bmp" ;
PROMPT " &Screen" ;
FONT oFont1 ;
ACTION ( TEST_SCR(oWndMain) )
oBtn5:cTooltip := { "New" + CRLF + ;
"Screen-resolution 1024 x 768","Screen", 1, CLR_BLACK, 14089979 }
oBtn5:lTransparent := .T.
oBtn5:l2007 := .F.
oBtn5:SetColor( 16312263 )
...
...
ACTIVATE DIALOG oWndMain CENTERED ;
ON INIT GRADBRU1(oWndMain, 0.8, 8388608, 14853684, .T.) ;
ON PAINT ABPaint( hDC, 50, 10, oAlpha:hBitmap, 255 ) // Horiz / Vertical
oFont1:End()
// Back to different Screen-resolution RESET
IF cRestart = "YES"
CHANGE_SCR( nScrwidth, nScrheight, .T.)
ENDIF
RETURN NIL
// --------- Use 1024 x 768 if Screenresolution is different ------------
FUNCTION TEST_SCR(oWndMain)
IF cRestart = "YES"
IF CHANGE_SCR(1024, 768, .T.) = .F.
MsgAlert( "Cannot change Screen-resolution !","Attention")
ENDIF
ELSE
MsgAlert( "No Screen-resolution-change needed !","Attention" )
ENDIF
RETURN NIL
I got the same Result. After changing the Screen-resolution
Message : Testbtn.exe doesn't work anymore ....
Code: Select all
// Defining ButtonBar buttons which uses Bitmaps files from disk
#include "FiveWin.ch"
static oWnd
//----------------------------------------------------------------------------//
function Main()
local oBar
local oBrush
local oPopup
DEFINE BRUSH oBrush COLOR nRGB( 12, 129, 87 )
DEFINE WINDOW oWnd FROM 1, 10 TO 20, 60 ;
TITLE "Testing Buttons from disk" ;
BRUSH oBrush
DEFINE BUTTONBAR oBar OF oWnd _3D
DEFINE BUTTON OF oBar FILE "..\bitmaps\16x16\exit.bmp" ;
ACTION MsgInfo( CHANGE_SCR( 1152, 864, .T.) ) ;
MESSAGE "You can place..."
MENU oPopup POPUP
MENUITEM "Test" WHEN .f.
MENUITEM "Test" ACTION MsgInfo( "Any action" )
MENU
MENUITEM "Another" WHEN .f.
MENUITEM "More..."
ENDMENU
ENDMENU
DEFINE BUTTON OF oBar FILE "..\bitmaps\16x16\Open.bmp" GROUP ;
ACTION MsgInfo( FWVERSION ) ;
MESSAGE "Any BMP File here..." ;
MENU oPopup
DEFINE BUTTON OF oBar FILE "..\bitmaps\16x16\Cut.bmp" ;
ACTION MsgInfo( FWVERSION ) ;
MESSAGE "Reading it from disk !!!"
SET MESSAGE OF oWnd TO FWVERSION + " " + FWCOPYRIGHT
ACTIVATE WINDOW oWnd
return nil
///////////////////////////////////////////////////////////////////
/// FUNCION CamReso
/// CAMBIA RESOLUCION DE PANTALLA TEMPORALMENTE
/// Manuel Valdenebro 2008
/// Adaptación ChangeRes() Marcelo Gomes/Yuri Marcelino
/// http://www.fivewin.com.br/forum/topic.a ... C_ID=10465
/// ---------------------------------------
// nAncho ancho pantalla
// nAlto alto pantalla
// lPreguntar si pregunta antes de realizar el cambio
///////////////////////////////////////////////////////////////////
#Include "dll.ch"
#Include "Struct.ch"
Function CHANGE_SCR(nScrwidth, nScrheight, lChange)
Local DM_PELSWIDTH := nHex("80000")
Local DM_PELSHEIGHT := nHex("100000")
Local oDevMode
Local lPosible
Local cBuffer
Local lScrReso := .f.
*DEFAULT lPreguntar := .t.
*DEFAULT nScrwidth := GetSysMetrics(1) // Width
*DEFAULT nScrheight := GetSysMetrics(0) // Height
STRUCT oDevMode
MEMBER cDevName AS STRING LEN 32
MEMBER nSpecVer AS WORD
MEMBER nDrvVer AS WORD
MEMBER nSize AS WORD
MEMBER nDrvExtra AS WORD
MEMBER nFields AS DWORD
MEMBER nOrientat AS WORD
MEMBER nPaperSiz AS WORD
MEMBER nPaperLen AS WORD
MEMBER nPaperWid AS WORD
MEMBER nScale AS WORD
MEMBER nCopies AS WORD
MEMBER nDefSrc AS WORD
MEMBER nPrnQlty AS WORD
MEMBER nColor AS WORD
MEMBER nDuplex AS WORD
MEMBER nYResolut AS WORD
MEMBER nTTOpt AS WORD
MEMBER nCollate AS WORD
MEMBER cFormName AS STRING LEN 32
MEMBER nUnusePad AS WORD
MEMBER nBitsPPel AS DWORD
MEMBER nPelWidth AS DWORD
MEMBER nPelHeigh AS DWORD
MEMBER nDisFlags AS DWORD
MEMBER nDisFreq AS DWORD
ENDSTRUCT
cBuffer := oDevMode:cBuffer
// Comprueba si es posible cambiar la resolución
lPosible := EnumDisplaySettings(0, 0, @cBuffer)
// Change if possible
IF lPosible
IF lChange
IF MsgYesNo("Do You want to change the Resolution ?", "Attention")
ELSE
RETURN lScrReso
ENDIF
ENDIF
oDevMode:nFields := nOr(DM_PELSWIDTH, DM_PELSHEIGHT )
oDevMode:nPelWidth := nScrwidth
oDevMode:nPelHeigh := nScrheight
cBuffer:=oDevMode:cBuffer
TRY
ChangeDisplaySettings(@cBuffer, 4)
lScrReso := .T.
CATCH
MsgAlert("Modo no soportado", "Error" )
END
ELSE
MsgAlert("Modo no soportado", "Error" )
ENDIF
RETURN lScrReso
//----------------------------------------------------------------------------//
DLL32 FUNCTION EnumDisplaySettings(lpszDeviceName AS DWORD,;
iModeNum AS DWORD, ;
@lpDevMode AS LPSTR) AS BOOL PASCAL;
FROM "EnumDisplaySettingsA" LIB "User32.dll"
DLL32 FUNCTION ChangeDisplaySettings(@lpDevMode AS LPSTR,;
dwFlags AS DWORD) AS DWORD;
FROM "ChangeDisplaySettingsA" LIB "User32.dll"
DLL32 FUNCTION ExitWindowsEx(uFlags AS DWORD,;
dwReserved AS DWORD) AS DWORD PASCAL;
LIB "user32.dll"
Uwe
Last edited by ukoenig on Fri Apr 01, 2011 8:16 pm, edited 1 time in total.
Since 1995 ( the first release of FW 1.9 )
i work with FW.
If you have any questions about special functions, maybe i can help.
i work with FW.
If you have any questions about special functions, maybe i can help.
Re: Changing Screen-resolution to Applic.-resol. at Runtime ?
Hi Uwe, I confirm that there is a problem with the code!!!
I was able to temporaly change the resolution by using the function directly right after declaring Local Variables without using a button to call it. No error was produced, but the window was not created and the original resolution was restored after a few seconds...
Sorry I can not help you any further in the issue...
I was able to temporaly change the resolution by using the function directly right after declaring Local Variables without using a button to call it. No error was produced, but the window was not created and the original resolution was restored after a few seconds...
Sorry I can not help you any further in the issue...
=====>
Bayron Landaverry
(215)2226600 Philadelphia,PA, USA
+(502)46727275 Guatemala
MayaBuilders@gMail.com
FWH12.04||Harbour 3.2.0 (18754)||BCC6.5||UEstudio 10.10||
Windows 7 Ultimate
FiveWin, One line of code and it's done...
Bayron Landaverry
(215)2226600 Philadelphia,PA, USA
+(502)46727275 Guatemala
MayaBuilders@gMail.com
FWH12.04||Harbour 3.2.0 (18754)||BCC6.5||UEstudio 10.10||
Windows 7 Ultimate
FiveWin, One line of code and it's done...
Re: Changing Screen-resolution to Applic.-resol. at Runtime ?
I just read in the Brasilian forum, that it seem that it produces the error when using xHarbour...
I don't use Harbour, maybe someone can test it...
I don't use Harbour, maybe someone can test it...
=====>
Bayron Landaverry
(215)2226600 Philadelphia,PA, USA
+(502)46727275 Guatemala
MayaBuilders@gMail.com
FWH12.04||Harbour 3.2.0 (18754)||BCC6.5||UEstudio 10.10||
Windows 7 Ultimate
FiveWin, One line of code and it's done...
Bayron Landaverry
(215)2226600 Philadelphia,PA, USA
+(502)46727275 Guatemala
MayaBuilders@gMail.com
FWH12.04||Harbour 3.2.0 (18754)||BCC6.5||UEstudio 10.10||
Windows 7 Ultimate
FiveWin, One line of code and it's done...
- Daniel Garcia-Gil
- Posts: 2365
- Joined: Wed Nov 02, 2005 11:46 pm
- Location: Isla de Margarita
- Contact:
Re: Changing Screen-resolution to Applic.-resol. at Runtime ?
Hello
it's a sample using the function from C
it's a sample using the function from C
Code: Select all
#include "fivewin.ch"
function main()
? CHANGEDISLPAYRESOLUTION( 1440, 900 )
return nil
#pragma BEGINDUMP
#include <hbapi.h>
#include <windows.h>
HB_FUNC( CHANGEDISLPAYRESOLUTION )
{
DWORD dmBitsPerPel = hb_pcount() > 2 ? hb_parnl( 3 ) : 0 ;
DWORD dmPelsWidth = hb_parnl( 1 );
DWORD dmPelsHeight = hb_parnl( 2 );
DEVMODE DevMode;
EnumDisplaySettings( NULL, ENUM_CURRENT_SETTINGS, &DevMode );
DevMode.dmPelsWidth = dmPelsWidth;
DevMode.dmPelsHeight = dmPelsHeight;
if( dmBitsPerPel > 0 )
DevMode.dmBitsPerPel = dmBitsPerPel;
hb_retnl( ChangeDisplaySettings( &DevMode, CDS_RESET ) );
}
#pragma ENDDUMP
our best documentation is the source code
Isla de Margarita Venezuela.
danielgarciagil@gmail.com
http://tdolphin.blogspot.com/
https://www.dropbox.com/referrals/NTI5N ... rc=global9
Isla de Margarita Venezuela.
danielgarciagil@gmail.com
http://tdolphin.blogspot.com/
https://www.dropbox.com/referrals/NTI5N ... rc=global9
Re: Changing Screen-resolution to Applic.-resol. at Runtime ?
Daniel,
Thank You very much.
This Function works GREAT without any Problems.
As well the RESET, to restore the old Screen-resolution after finishing the Application.
No Validation needed ( works in silent Mode ).
It's funny, that calling original API-functions, making Problems.
CHANGEDISLPAYRESOLUTION( 1152, 864 )
must use supported Values :
1024 x 768
1152 x 864
1280 x 720
1280 x 768
1280 x 960
1280 x 1024
1600 x 1200
Sample :
Best Regards
Uwe
Thank You very much.
This Function works GREAT without any Problems.
As well the RESET, to restore the old Screen-resolution after finishing the Application.
No Validation needed ( works in silent Mode ).
It's funny, that calling original API-functions, making Problems.
CHANGEDISLPAYRESOLUTION( 1152, 864 )
must use supported Values :
1024 x 768
1152 x 864
1280 x 720
1280 x 768
1280 x 960
1280 x 1024
1600 x 1200
Sample :
Code: Select all
#include "FiveWin.ch"
FUNCTION MAIN()
LOCAL oWndMain
LOCAL nScrwidth := GetSysmetrics( 0 ), nScrheight := GetSysmetrics( 1 )
IF nScrwidth <> 1024 .and. nScrheight <> 768
CHANGEDISLPAYRESOLUTION( 1024, 768 ) // Application Screen-resolution
ENDIF
DEFINE DIALOG oWndMain FROM 0, 0 TO 260, 400 PIXEL TRANSPARENT ;
STYLE WS_POPUP | WS_VISIBLE | WS_DLGFRAME | WS_THICKFRAME
// ...
// ...
ACTIVATE DIALOG oWndMain CENTERED
// Back to different Screen-resolution RESET
IF nScrwidth <> 1024 .and. nScrheight <> 768
CHANGEDISLPAYRESOLUTION( nScrwidth, nScrheight )
ENDIF
RETURN NIL
// ----------------
#pragma BEGINDUMP
#include <hbapi.h>
#include <windows.h>
HB_FUNC( CHANGEDISLPAYRESOLUTION )
{
DWORD dmBitsPerPel = hb_pcount() > 2 ? hb_parnl( 3 ) : 0 ;
DWORD dmPelsWidth = hb_parnl( 1 );
DWORD dmPelsHeight = hb_parnl( 2 );
DEVMODE DevMode;
EnumDisplaySettings( NULL, ENUM_CURRENT_SETTINGS, &DevMode );
DevMode.dmPelsWidth = dmPelsWidth;
DevMode.dmPelsHeight = dmPelsHeight;
if( dmBitsPerPel > 0 )
DevMode.dmBitsPerPel = dmBitsPerPel;
hb_retnl( ChangeDisplaySettings( &DevMode, CDS_RESET ) );
}
#pragma ENDDUMP
Uwe
Last edited by ukoenig on Fri Apr 01, 2011 7:26 pm, edited 2 times in total.
Since 1995 ( the first release of FW 1.9 )
i work with FW.
If you have any questions about special functions, maybe i can help.
i work with FW.
If you have any questions about special functions, maybe i can help.
Re: Changing Screen-resolution to Applic.-resol. at Runtime ?
Am I missing something???
I Compiled Uwe's sample, but the resolution does not changes!!!!
When I press escape to exit, I see the screen blink, but nothing else happens!!!!
I Compiled Uwe's sample, but the resolution does not changes!!!!
When I press escape to exit, I see the screen blink, but nothing else happens!!!!
=====>
Bayron Landaverry
(215)2226600 Philadelphia,PA, USA
+(502)46727275 Guatemala
MayaBuilders@gMail.com
FWH12.04||Harbour 3.2.0 (18754)||BCC6.5||UEstudio 10.10||
Windows 7 Ultimate
FiveWin, One line of code and it's done...
Bayron Landaverry
(215)2226600 Philadelphia,PA, USA
+(502)46727275 Guatemala
MayaBuilders@gMail.com
FWH12.04||Harbour 3.2.0 (18754)||BCC6.5||UEstudio 10.10||
Windows 7 Ultimate
FiveWin, One line of code and it's done...
- Daniel Garcia-Gil
- Posts: 2365
- Joined: Wed Nov 02, 2005 11:46 pm
- Location: Isla de Margarita
- Contact:
Re: Changing Screen-resolution to Applic.-resol. at Runtime ?
Byron
did you tested my sample?
did you tested my sample?
our best documentation is the source code
Isla de Margarita Venezuela.
danielgarciagil@gmail.com
http://tdolphin.blogspot.com/
https://www.dropbox.com/referrals/NTI5N ... rc=global9
Isla de Margarita Venezuela.
danielgarciagil@gmail.com
http://tdolphin.blogspot.com/
https://www.dropbox.com/referrals/NTI5N ... rc=global9
Re: Changing Screen-resolution to Applic.-resol. at Runtime ?
Yes I did; I got a dialog Alert:Daniel Garcia-Gil wrote:Byron
did you tested my sample?
=====>
Bayron Landaverry
(215)2226600 Philadelphia,PA, USA
+(502)46727275 Guatemala
MayaBuilders@gMail.com
FWH12.04||Harbour 3.2.0 (18754)||BCC6.5||UEstudio 10.10||
Windows 7 Ultimate
FiveWin, One line of code and it's done...
Bayron Landaverry
(215)2226600 Philadelphia,PA, USA
+(502)46727275 Guatemala
MayaBuilders@gMail.com
FWH12.04||Harbour 3.2.0 (18754)||BCC6.5||UEstudio 10.10||
Windows 7 Ultimate
FiveWin, One line of code and it's done...
- Daniel Garcia-Gil
- Posts: 2365
- Joined: Wed Nov 02, 2005 11:46 pm
- Location: Isla de Margarita
- Contact:
Re: Changing Screen-resolution to Applic.-resol. at Runtime ?
Bayron
you're trying set a mode not supported...
you're trying set a mode not supported...
Code: Select all
DISP_CHANGE_SUCCESSFUL= 0 ;The settings change was successful.
DISP_CHANGE_RESTART= 1 ;The computer must be restarted in order for the graphics mode to work.
DISP_CHANGE_FAILED= -1 ;The display driver failed the specified graphics mode.
DISP_CHANGE_BADMODE= -2 ;The graphics mode is not supported.
DISP_CHANGE_NOTUPDATED= -3 ;Unable to write settings to the registry.
DISP_CHANGE_BADFLAGS= -4 ;An invalid set of flags was passed in.
DISP_CHANGE_BADPARAM= -5 ; Bad parameters
our best documentation is the source code
Isla de Margarita Venezuela.
danielgarciagil@gmail.com
http://tdolphin.blogspot.com/
https://www.dropbox.com/referrals/NTI5N ... rc=global9
Isla de Margarita Venezuela.
danielgarciagil@gmail.com
http://tdolphin.blogspot.com/
https://www.dropbox.com/referrals/NTI5N ... rc=global9
Re: Changing Screen-resolution to Applic.-resol. at Runtime ?
Thanks Daniel,
That is why I compiled Uwe's sample...
I did not get the error, but the resolution does not changes....
By the way, the resolution in your sample should be supported in my system!!!
Maybe it has something to do that I have 2 monitors???
That is why I compiled Uwe's sample...
I did not get the error, but the resolution does not changes....
By the way, the resolution in your sample should be supported in my system!!!
Maybe it has something to do that I have 2 monitors???
=====>
Bayron Landaverry
(215)2226600 Philadelphia,PA, USA
+(502)46727275 Guatemala
MayaBuilders@gMail.com
FWH12.04||Harbour 3.2.0 (18754)||BCC6.5||UEstudio 10.10||
Windows 7 Ultimate
FiveWin, One line of code and it's done...
Bayron Landaverry
(215)2226600 Philadelphia,PA, USA
+(502)46727275 Guatemala
MayaBuilders@gMail.com
FWH12.04||Harbour 3.2.0 (18754)||BCC6.5||UEstudio 10.10||
Windows 7 Ultimate
FiveWin, One line of code and it's done...
Re: Changing Screen-resolution to Applic.-resol. at Runtime ?
A better sample with Button-selection :
( The Exit-button restores to original Screen-resolution )
Best Regards
Uwe
( The Exit-button restores to original Screen-resolution )
Code: Select all
#include "FiveWin.ch"
FUNCTION MAIN()
LOCAL oWndMain, oFont
LOCAL nScrwidth := GetSysmetrics( 0 ), nScrheight := GetSysmetrics( 1 )
// adjust to Application Screen-resolution
// --------------------------------------------------
IF nScrwidth <> 1024 .and. nScrheight <> 768
CHANGEDISLPAYRESOLUTION( 1024, 768 )
ENDIF
DEFINE FONT oFont NAME 'MS Sans Serif' SIZE 16, 16
DEFINE DIALOG oWndMain FROM 0, 0 TO 260, 400 PIXEL TRANSPARENT ;
STYLE WS_POPUP | WS_VISIBLE | WS_DLGFRAME | WS_THICKFRAME
@ 15,30 BUTTON "Exit" size 100,25 font oFont OF oWndMain PIXEL ;
ACTION ( nScrwidth := 1024, ; // Application Screen-resolution
nScrheight := 768, ;
oWndMain:End() )
@ 45,30 BUTTON "1280 x 720" size 100,25 font oFont OF oWndMain PIXEL ;
ACTION ( CHANGEDISLPAYRESOLUTION( 1280, 720 ), ;
nScrwidth := GetSysmetrics( 0 ), ;
nScrheight := GetSysmetrics( 1 ) )
@ 75,30 BUTTON "1280 x 720" size 100,25 font oFont OF oWndMain PIXEL ;
ACTION ( CHANGEDISLPAYRESOLUTION( 1280, 1024 ), ;
nScrwidth := GetSysmetrics( 0 ), ;
nScrheight := GetSysmetrics( 1 ) )
ACTIVATE DIALOG oWndMain CENTERED
oFont:End()
// RESET to 1024 x 768
// ------------------------
CHANGEDISLPAYRESOLUTION( nScrwidth, nScrheight )
RETURN NIL
// ----------------
#pragma BEGINDUMP
#include <hbapi.h>
#include <windows.h>
HB_FUNC( CHANGEDISLPAYRESOLUTION )
{
DWORD dmBitsPerPel = hb_pcount() > 2 ? hb_parnl( 3 ) : 0 ;
DWORD dmPelsWidth = hb_parnl( 1 );
DWORD dmPelsHeight = hb_parnl( 2 );
DEVMODE DevMode;
EnumDisplaySettings( NULL, ENUM_CURRENT_SETTINGS, &DevMode );
DevMode.dmPelsWidth = dmPelsWidth;
DevMode.dmPelsHeight = dmPelsHeight;
if( dmBitsPerPel > 0 )
DevMode.dmBitsPerPel = dmBitsPerPel;
hb_retnl( ChangeDisplaySettings( &DevMode, CDS_RESET ) );
}
#pragma ENDDUMP
Uwe
Since 1995 ( the first release of FW 1.9 )
i work with FW.
If you have any questions about special functions, maybe i can help.
i work with FW.
If you have any questions about special functions, maybe i can help.