473,769 Members | 7,375 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Setting screen resolution - why does this work?

1 New Member
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 2505
numberwhun
3,509 Recognized Expert Moderator Specialist
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
4887
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 JavaScript, and 3) using fancy redirects and forced "back skip" redirects with cookies. Every approach has some fatal flaw as far as I have been able to persue it. My most recent idea is to make multiple style sheets (selectable via javascript...
5
4410
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: I would like to detect, get values for, the screen resolution in px but in a code behind. Is this possible? There is a System.Windows.Forms.Screen class for the Windows client side, why are there none for browser/ASP.NET client?
10
1783
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. now when I look at the page at a higher resolution, I am not happy with it. How can I set the users computer (or page) to match what I want it to make the page look it's best???
2
2493
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 resolution. I use sized forms that will fit onto the screen at that resolution. The obvious downside is that for users who are running higher resolutions the application is not utilising the whole screen. I would be interested in how other...
14
4031
by: Roger Withnell | last post by:
How to I find out what size text the browser is set to? Thanks in anticipation.
5
6206
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 either resolution 800 X 600 or 1152 X 864 it takes up the entire explorer size. In screen resolution 800 X 600, if I insert a pictures of 24 X 24 pixel in the cells it takes up the entire cell size (ideally it should as the cell size is also 24 X...
9
3908
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 stylesheet switcher as part of the onload event but I would rather link in the correct stylesheet for the resolution in the first place.
6
3035
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 digging that this can be only done through javascript(or so most claim) and to pass the resolution from javascript to PHP you would need to refresh the page again (to put the resolution in the URL or in a coockie) The other solution is to use ajax and...
10
44086
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 screen. I used to write code in Java a few years ago (2005), and you could stretch a form with the mouse and all the controls and fonts would resize to larger or smaller size. Does .Net framework 3.5 support this kind of functionality? Or -...
0
9589
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, people are often confused as to whether an ONU can Work As a Router. In this blog post, we’ll explore What is ONU, What Is Router, ONU & Router’s main usage, and What is the difference between ONU and Router. Let’s take a closer look ! Part I. Meaning of...
0
10216
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. Here is my compilation command: g++-12 -std=c++20 -Wnarrowing bit_field.cpp Here is the code in...
0
10049
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 tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth. The Art of Business Website Design Your website is...
1
9997
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For most users, this new feature is actually very convenient. If you want to control the update process,...
0
9865
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
0
6675
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one. At the time of converting from word file to html my equations which are in the word document file was convert into image. Globals.ThisAddIn.Application.ActiveDocument.Select();...
0
5309
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols. I succeeded, with both firewalls in the same network. But I'm wondering if it's possible to do the same thing, with 2 Pfsense firewalls...
0
5448
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
3
2815
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating effective websites that not only look great but also perform exceptionally well. In this comprehensive...

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.