473,388 Members | 1,370 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,388 software developers and data experts.

Setting screen resolution - why does this work?

Hi,
i am nasima. I have got a code for setting the screen resolution of my page, but i am unable to understand. Can any one give a complete data explanation of the below code.

Expand|Select|Wrap|Line Numbers
  1. Sub ChangeRes(X As Long, Y As Long, Bits As Long)
  2.     Dim DevM As DEVMODE, ScInfo As Long, erg As Long, an As VbMsgBoxResult
  3.     'Get the info into DevM
  4.     erg = EnumDisplaySettings(0&, 0&, DevM)
  5.     'This is what we're going to change
  6.     DevM.dmFields = DM_PELSWIDTH Or DM_PELSHEIGHT Or DM_BITSPERPEL
  7.     DevM.dmPelsWidth = X 'ScreenWidth
  8.     DevM.dmPelsHeight = Y 'ScreenHeight
  9.     DevM.dmBitsPerPel = Bits '(can be 8, 16, 24, 32 or even 4)
  10.     'Now change the display and check if possible
  11.     erg = ChangeDisplaySettings(DevM, CDS_TEST)
  12.     'Check if succesfull
  13.     Select Case erg&
  14.         Case DISP_CHANGE_RESTART
  15.             an = MsgBox("You've to reboot", vbYesNo + vbSystemModal, "Info")
  16.             If an = vbYes Then
  17.                 erg& = ExitWindowsEx(EWX_REBOOT, 0&)
  18.             End If
  19.         Case DISP_CHANGE_SUCCESSFUL
  20.             erg = ChangeDisplaySettings(DevM, CDS_UPDATEREGISTRY)
  21.             ScInfo = Y * 2 ^ 16 + X
  22.             'Notify all the windows of the screen resolution change
  23.             SendMessage HWND_BROADCAST, WM_DISPLAYCHANGE, ByVal Bits, ByVal ScInfo
  24.             MsgBox "Everything's ok", vbOKOnly + vbSystemModal, "It worked!"
  25.         Case Else
  26.             MsgBox "Mode not supported", vbOKOnly + vbSystemModal, "Error"
  27.     End Select
  28. End Sub
  29.  
  30. Private Sub Command1_Click()
  31.     Dim sMyData As String
  32.     Dim iReply As Integer
  33.     Dim aXY As Variant
  34.     aXY = Array("", "")
  35.     sMyData = aPossible(List1.ListIndex + 1)
  36.     iReply = MsgBox("You have chosen:" + vbCrLf + sMyData, vbCritical + vbOKCancel)
  37.     If iReply = vbOK Then
  38.         aXY = Split(sMyData, "x")
  39.         aXY(0) = CInt(aXY(0))
  40.         aXY(1) = CInt(aXY(1))
  41. '       ChangeRes aXY(0), aXY(1), GetDeviceCaps(nDC, BITSPIXEL)
  42.     End If
  43. End Sub
  44.  
  45. Private Sub Form_Load()
  46.     'KPD-Team 1999
  47.     'URL: http://www.allapi.net/
  48.     'E-Mail: KPDTeam@Allapi.net
  49.     Dim nDC As Long
  50.     Dim sMyString As String
  51.     Dim bReturn As Boolean
  52.     Dim bFound As Boolean
  53.     Dim lX As Long
  54.     Dim iY As Integer       'resrved for the ordinal ubound of apossible
  55.     Dim iz As Integer
  56.     Dim DevM As DEVMODE
  57.     sMyString = "The current list" + vbCrLf + vbCrLf
  58.     sMyString = sMyString + "Screen Width:" + Str(Screen.Width) + vbCrLf
  59.     sMyString = sMyString + "Screen Height:" + Str(Screen.Height) + vbCrLf
  60.     sMyString = sMyString + "Screen TwipsPerPixelX:" + Str(Screen.TwipsPerPixelX) + vbCrLf
  61.     sMyString = sMyString + "Screen TwipsPerPixelY:" + Str(Screen.TwipsPerPixelY) + vbCrLf
  62.  
  63.     'retrieve the screen's resolution
  64.     OldX = Screen.Width / Screen.TwipsPerPixelX
  65.     OldY = Screen.Height / Screen.TwipsPerPixelY
  66.     sMyString = sMyString + "X resolution:" + Str(OldX) + vbCrLf
  67.     sMyString = sMyString + "Y resolution:" + Str(OldY) + vbCrLf
  68. '   MsgBox sMyString
  69. '   Text2.Text = Trim$(Str(OldX))
  70. '   Text3.Text = Trim$(Str(OldY))
  71.     ReDim aPossible(1)
  72.     aPossible(0) = Trim$(Str$(OldX)) + " x " + Trim$(Str$(OldY))
  73.     Text4.Text = aPossible(0)
  74. '   MsgBox aPossible(0)
  75.     sMyString = ""
  76.     lX = 0
  77.     iY = 0
  78.     'Create a device context, compatible with the screen
  79.     nDC = CreateDC("DISPLAY", vbNullString, vbNullString, ByVal 0&)
  80.     bReturn = True
  81.     While bReturn
  82.             bReturn = EnumDisplaySettings(0&, lX, DevM)
  83.             If bReturn Then     'ie. a valid entry
  84. '               sMyString = sMyString + Trim$(Str$(DevM.dmBitsPerPel)) + ":" + Trim$(Str$(DevM.dmPelsWidth)) + ":" + Trim$(Str$(DevM.dmPelsHeight)) + ":" + Str(lX) + vbCrLf
  85.                 sMyString = Trim$(Str$(DevM.dmPelsWidth)) + " x " + Trim$(Str$(DevM.dmPelsHeight))
  86.                 bFound = False
  87.                 For iz = 0 To iY
  88.                     If sMyString = aPossible(iz) Then
  89.                         bFound = True
  90.                         Exit For
  91.                     End If
  92.                 Next
  93.                 If Not bFound Then
  94.                     iY = iY + 1
  95.                     ReDim Preserve aPossible(iY)
  96.                     aPossible(iY) = sMyString
  97.                 End If
  98.                 lX = lX + 1 'Dont forget this
  99.             End If
  100.     Wend
  101.     sMyString = ""
  102.     For iz = 1 To iY
  103.         List1.AddItem aPossible(iz)
  104.     Next
  105. '   MsgBox sMyString
  106.     'Change the screen's resolution
  107. '   ChangeRes 640, 480, GetDeviceCaps(nDC, BITSPIXEL)
  108. '    Unload Me
  109. End Sub
  110.  
Oct 25 '07 #1
1 2488
numberwhun
3,509 Expert Mod 2GB
If you can please confirm that this is VB code, I will move it to the appropriate forum to get your question answered.

Regards,

Jeff
Oct 25 '07 #2

Sign in to post your reply or Sign up for a free account.

Similar topics

23
by: Dufe | last post by:
Hello all: To deal with the problem of differing user screen resolutions, I've explored: 1) making the pages in PHP, 2) having different pages on the same page and selecting the proper one via...
5
by: Chris | last post by:
After exhausting my search on the MS website, I can't find a straight answer. I fin dit hard to believe that MS left our something so useful in ASP.NET as screen resolution detection. Problem:...
10
by: Prophet | last post by:
when I first started to write my page, I had my settings at 1024 x 768. I then saw the page on a 800 x 600 computer - wow - what a difference!!! I then went back and redid my page at 800 x 600....
2
by: Wayne Aprato | last post by:
How do most Access developers handle the issue of different database users possibly running different screen resolutions? At the moment, I design for the worst case scenario ie. 800 x 600 screen...
14
by: Roger Withnell | last post by:
How to I find out what size text the browser is set to? Thanks in anticipation.
5
by: Maxi | last post by:
I have a 30X16 cells table in my html page. Table height and width are set to 100%. I have set size of every cell inside the table to 24 pixel. When I open the html page in maximize state in...
9
by: Steve Wright | last post by:
Hi I'm developing a webpage that needs to include a different stylesheet depending on the screen resolution. I know that I could read the resolution in javascript and then do some sort of...
6
mikek12004
by: mikek12004 | last post by:
I want to load a different swf in PHP based on the viewer's screen resolution. All would be fine if I could get the screen resolution in a variable in PHP. Problem is that after I done a bit of a...
10
by: =?Utf-8?B?UmljaA==?= | last post by:
A lot of users at my workplace use different screen resolutions, and I build apps to use 1680 x 1050 pixels res by default. But some users are using 800 x 600, and the apps are too large for their...
0
by: taylorcarr | last post by:
A Canon printer is a smart device known for being advanced, efficient, and reliable. It is designed for home, office, and hybrid workspace use and can also be used for a variety of purposes. However,...
0
by: ryjfgjl | last post by:
If we have dozens or hundreds of excel to import into the database, if we use the excel import function provided by database editors such as navicat, it will be extremely tedious and time-consuming...
0
by: ryjfgjl | last post by:
In our work, we often receive Excel tables with data in the same format. If we want to analyze these data, it can be difficult to analyze them because the data is spread across multiple Excel files...
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.