自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

剖析講解VB.NET分辯率案例

開發(fā) 后端
在VB.NET中得到顯示器的分辨率很容易,調(diào)試就是一個(gè)很麻煩的事,文章實(shí)例利用兩個(gè)api函數(shù)來解決VB.NET分辯率的問題,快看看吧!

使用VB.NET開發(fā)的程序員知道很容易獲得顯示器的分辯率,但是,要改變VB.NET分辯率是一件很讓人頭疼的事。由于VB.NET的類庫(kù)沒有將enumdisplaysettings 和ChangeDisplaySettings這兩個(gè)API函數(shù)進(jìn)行封裝,但是我們得調(diào)用它們函數(shù),相對(duì)于VB6來說,VB.NET調(diào)用API函數(shù)是有一些小的改動(dòng)!

下面,我們就嘗試一下在VB.NET分辯率調(diào)試,使用這兩個(gè)api函數(shù)。

新建一個(gè)項(xiàng)目,在form1上添加兩個(gè)按鈕,一個(gè)名為btngetdisp,將其text屬性設(shè)置為“得到分辯率”;另一個(gè)按鈕名為btnsetdisp,text屬性為“設(shè)置分辯率”。然后在代碼窗口里添加以下代碼:

  1. private Const CCDEVICENAME As Short = 32 
  2. private Const CCFORMNAME As Short = 32 
  3. private Const DM_PELSWIDTH As Integer = &H80000  
  4. private Const DM_PELSHEIGHT As Integer = &H100000  
  5. '刷新頻率常量  
  6. private Const DM_DISPLAYFREQUENCY As Integer = &H400000  
  7. '調(diào)用API函數(shù)  
  8. private Declare Function EnumDisplaySettings Lib "user32" Alias "EnumDisplaySettingsA" (ByVal lpszDeviceName As Integer, ByVal iModeNum As Integer, ByRef lpDevMode As DEVMODE) As Boolean  
  9. '調(diào)用api函數(shù)  
  10. private Declare Function ChangeDisplaySettings Lib "user32" Alias "ChangeDisplaySettingsA" (ByRef lpDevMode As DEVMODE, ByVal dwflags As Integer) As Integer  
  11. '定義結(jié)構(gòu)  
  12. private Structure DEVMODE  
  13. <vbfixedstring(ccdevicename), System.Runtime.InteropServices.MarshalAs(System.Runtime.InteropServices.UnmanagedType.ByValTStr, SizeConst:=CCDEVICENAME)> Public dmDeviceName  
  14. As  
  15. String  
  16. dim dmSpecVersion As Short  
  17. dim dmDriverVersion As Short  
  18. dim dmSize As Short  
  19. dim dmDriverExtra As Short  
  20. dim dmFields As Integer  
  21. dim dmOrientation As Short  
  22. dim dmPaperSize As Short  
  23. dim dmPaperLength As Short  
  24. dim dmPaperWidth As Short  
  25. dim dmScale As Short  
  26. dim dmCopies As Short  
  27. dim dmDefaultSource As Short  
  28. dim dmPrintQuality As Short  
  29. dim dmColor As Short  
  30. dim dmDuplex As Short  
  31. dim dmYResolution As Short  
  32. dim dmTTOption As Short  
  33. dim dmCollate As Short  
  34. <vbfixedstring(ccformname), System.Runtime.InteropServices.MarshalAs(System.Runtime.InteropServices.UnmanagedType.ByValTStr, SizeConst:=CCFORMNAME)> Public dmFormName As String  
  35. dim dmUnusedPadding As Short  
  36. dim dmBitsPerPel As Short  
  37. dim dmPelsWidth As Integer  
  38. dim dmPelsHeight As Integer  
  39. dim dmDisplayFlags As Integer  
  40. dim dmDisplayFrequency As Integer  
  41. end Structure   
  42. '改變分辯率過程,參數(shù)一寬度,參數(shù)二高度  
  43. private Sub ChangeDisp(ByRef iWidth As Single, ByRef iHeight As Single)  
  44. dim blnWorked As Boolean  
  45. dim i As Integer  
  46. dim DevM As Form1.DEVMODE  
  47. i = 0 
  48. do  
  49. blnworked = EnumDisplaySettings(0, i, DevM)  
  50. ii = i + 1  
  51. loop Until (blnWorked = False)  
  52. with DevM  
  53. .dmfields = DM_PELSWIDTH Or DM_PELSHEIGHT Or DM_DISPLAYFREQUENCY  
  54. .dmpelswidth = iWidth 
  55. .dmpelsheight = iHeight 
  56. '刷新頻率為85  
  57. .dmdisplayfrequency = 85   
  58. end With  
  59. call ChangeDisplaySettings(DevM, 0)  
  60. end Sub  
  61. private Sub btnGetDisp_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnGetDisp.Click  
  62. dim X As Short = System.Windows.Forms.Screen.PrimaryScreen.Bounds.Width  
  63. dim Y As Short = System.Windows.Forms.Screen.PrimaryScreen.Bounds.Height  
  64. msgbox("您的顯示器分辨率是" & X & " X " & Y)  
  65. end Sub  
  66. private Sub btnSetDisp_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSetDisp.Click  
  67. if MsgBox("您確認(rèn)要將顯示器分辨率改為1024x768嗎?", MsgBoxStyle.OKCancel, "系統(tǒng)消息") = MsgBoxResult.OK Then  
  68. '調(diào)用改變分辯率過程  
  69. changedisp(1024, 768)  
  70. end If  
  71. end Sub 

程序運(yùn)行所示,點(diǎn)擊設(shè)置VB.NET分辯率,將會(huì)把顯示器分辨率改為1024x768,刷新頻率為85,是不是很簡(jiǎn)單?

【編輯推薦】

  1. 實(shí)例講述VB.NET使用Log4Net
  2. 三分鐘學(xué)會(huì)VB.NET轉(zhuǎn)換形態(tài)
  3. VB.NET獲取硬盤信息四大法寶
  4. 講述VB.NET調(diào)用Excel的好處
  5. 簡(jiǎn)單例子概述VB.NET新窗體
責(zé)任編輯:田樹 來源: 博客
相關(guān)推薦

2009-10-15 17:50:48

VB.NET調(diào)用API

2009-10-28 11:27:34

VB.NET資源文件

2009-10-23 13:14:38

2010-01-11 16:04:10

VB.NET使用wit

2009-10-20 10:16:24

VB.NET COMB

2009-10-21 16:00:26

VB.NET CASE

2009-10-29 14:02:24

VB和VB.NET比較

2009-11-02 16:22:16

VB.NET面向?qū)ο?/a>

2009-10-23 13:10:14

VB.NET List

2009-10-12 13:54:22

VB.NET Data

2009-10-15 11:42:05

VB.Net賦值語(yǔ)句

2009-10-27 16:52:41

VB.NET文件傳輸

2009-10-13 15:09:19

VB.NET使用Tre

2009-10-14 17:21:47

VB.NET定制Win

2009-10-13 14:42:30

VB.NET靜態(tài)成員

2010-01-18 18:20:49

VB.NET使用API

2010-01-14 14:21:07

2010-01-22 15:37:02

VB.NET監(jiān)控類

2009-10-28 10:15:48

VB.NET框架類庫(kù)

2009-10-12 16:51:28

VB.NET使用Ora
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)