CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
(图)邪恶的韩国UMPC 使用 Java 编写数据库应用新规范
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VB >  基础类

如何得到并调整分辨率,希望给出源码

楼主yell(我)2000-08-27 10:28:00 在 VB / 基础类 提问

问题点数:50、回复次数:3Top

1 楼chenjun(赤狼风云)回复于 2000-08-27 10:59:00 得分 30

声明:  
  Private   Declare   Function    
  lstrcpy   Lib   "kernel32"    
  Alias   "lstrcpyA"   (lpString1   As_  
  Any,   lpString2   As   Any)   As   Long  
   
  Private   Declare   Function   ChangeDisplaySettings  
      Lib   "user32"   Alias_  
    "ChangeDisplaySettingsA"   (ByVal   lpDevMode   As   Long,    
    ByVal   dwflags   As   Long)   As   Long  
   
  Private   Const   CCHDEVICENAME   =   32  
  Private   Const   CCHFORMNAME   =   32  
   
  Private   Type   DEVMODE’详细参考MSDN  
                  dmDeviceName   As   String   *   CCHDEVICENAME  
                  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   *   CCHFORMNAME  
                  dmUnusedPadding   As   Integer  
                  dmBitsPerPel   As   Integer  
                  dmPelsWidth   As   Long  
                  dmPelsHeight   As   Long  
                  dmDisplayFlags   As   Long  
                  dmDisplayFrequency   As   Long  
  End   Type  
   
  Public   Function   SetScreen  
  (Width   As   Integer,  
    Height   As   Integer,   Optional   Color    
  As   Integer   =   16)   As   Long'这里的  
  16指的是真16色  
  Const   DM_PELSWIDTH   =   &H80000  
  Const   DM_PELSHEIGHT   =   &H100000  
  Const   DM_BITSPERPEL   =   &H40000  
  Dim   NewDevMode   As   DEVMODE  
  Dim   pDevmode   As   Long  
   
  With   NewDevMode  
  .dmSize   =   Len(NewDevMode)'一般为122  
  If   Color   =   -1   Then  
  .dmFields   =   DM_PELSWIDTH   Or   DM_PELSHEIGHT  
                  Else  
                                  .dmFields   =   DM_PELSWIDTH   Or    
    DM_PELSHEIGHT   Or   DM_BITSPERPEL  
                  End   If  
                  .dmPelsWidth   =   Width  
                  .dmPelsHeight   =   Height  
                  If   Color   <   >   -1   Then  
                                  .dmBitsPerPel   =   Color  
                  End   If  
  End   With  
   
  pDevmode   =   lstrcpy(NewDevMode,   NewDevMode)  
  SetDisplayMode   =   ChangeDisplaySettings(pDevmode,   0)  
  End   Function  
     
   
  Private   Sub   Change_Click()  
  SetScreen   Val(Text1),   Val(Text2),   Val(Text3)  
  End   Sub  
   
  ’下面三个文本框分别存放分辨率和颜色值  
  Private   Sub   Text1_GotFocus()  
  Text1.SelStart   =   0  
  Text1.SelLength   =   Len(Text1)  
  End   Sub  
   
  Private   Sub   Text2_GotFocus()  
  Text2.SelStart   =   0  
  Text2.SelLength   =   Len(Text1)  
  End   Sub  
   
  Private   Sub   Text3_GotFocus()  
  Text3.SelStart   =   0  
  Text3.SelLength   =   Len(Text1)  
  End   Sub  
  Top

2 楼OUYAN()回复于 2000-08-27 11:28:00 得分 20

(1)得到屏幕分辨率  
  Private   Sub   Form_Load()  
  Dim   intWidth   As   Integer  
  Dim   intHeight   As   Integer  
  intWidth   =   Screen.Width   \   Screen.TwipsPerPixelX  
  intHeight   =   Screen.Height   \   Screen.TwipsPerPixelY  
  MsgBox   "Screen   分辨率:"   +   vbCrLf   +   vbCrLf   +   Str$(intWidth)   +   "   x"   +   Str$(intHeight),   64,   "Info"  
  End   Sub  
   
  (2)设定分辨率要用到二个API:  
  Private   Declare   Function   EnumDisplaySettings   Lib   "user32"   Alias   _  
        "EnumDisplaySettingsA"   (ByVal   lpszDeviceName   As   Long,   _  
        ByVal   iModeNum   As   Long,   lpDevMode   As   Any)   As   Long  
   
  Private   Declare   Function   ChangeDisplaySettings   Lib   "user32"   Alias   _  
        "ChangeDisplaySettingsA"   (lpDevMode   As   Any,   ByVal   dwflags   As   Long)   As   Long  
  Private   Declare   Function   ExitWindowsEx   Lib   "user32"   (ByVal   uFlags   As   Long,   _  
                                    ByVal   dwReserved   As   Long)   As   Long  
   
   
  Const   CDS_UPDATEREGISTRY   =   1  
  Const   DM_PELSWIDTH   =   &H80000  
  Const   DM_PELSHEIGHT   =   &H100000  
   
  Private   Type   DEVMODE   '定义一个结构  
          dmDeviceName   As   String   *   32  
          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   *   32  
          dmUnusedPadding   As   Integer  
          dmBitsPerPel   As   Integer  
          dmPelsWidth   As   Long  
          dmPelsHeight   As   Long  
          dmDisplayFlags   As   Long  
          dmDisplayFrequency   As   Long  
  End   Type  
  Private   DevM   As   DEVMODE  
   
  Private   Sub   Command1_Click()  
          Dim   i   As   Long  
          Dim   b   As   Long  
          Dim   ans   As   Long  
          Dim   a   As   Long  
          a   =   EnumDisplaySettings(0,   0,   DevM)  
          DevM.dmFields   =   DM_PELSWIDTH   Or   DM_PELSHEIGHT  
          DevM.dmPelsWidth   =   640       '设定成想要的解析度  
          DevM.dmPelsHeight   =   480  
          b   =   ChangeDisplaySettings(DevM,   CDS_UPDATEREGISTRY)  
  End   Sub  
   
   
  Top

3 楼liuwc(E-boy工作室)回复于 2000-08-27 11:52:00 得分 0

http://lovevb.2699.com里有你要得源码Top

相关问题

  • 如何调整分辨率
  • VB自动调整分辨率问题?
  • 如何得到屏幕的分辨率
  • 怎样得到屏幕的分辨率?
  • x-window下面怎么调整刷新频率和分辨率?
  • 怎样动态调整屏幕的分辨率
  • @@@@@怎么调整显示分辨率,给一百分@@@@@
  • 控制台字符模式分辨率怎么调整?
  • 关于 ChangeDisplaySettings 动态调整屏幕分辨率
  • 关于调整显示分辨率的问题

关键词

  • 分辨率
  • gotfocus
  • sellength
  • as integer
  • selstart
  • sub
  • screen
  • alias
  • val
  • len

得分解答快速导航

  • 帖主:yell
  • chenjun
  • OUYAN

相关链接

  • Visual Basic类图书
  • Visual Basic类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
惹火投票。。火热进行中...

社区焦点:

教你怎样用C#搞笑整人
最懒惰的程序员写的Cache
程序员如何掌握专业英语
Java栈与堆
分享:让人懊恼的面试
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo