CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VB >  API

求救!!!!!!如何用api函數取分辨率的width(不用screen.width)

楼主lcyxp(lcy)2003-11-03 11:40:01 在 VB / API 提问

求救!!!!!!如何用api函數取分辨率的width(不用screen.width 问题点数:0、回复次数:3Top

1 楼rainstormmaster(暴风雨 v2.0)回复于 2003-11-03 21:18:53 得分 0

Option   Explicit  
  Private   Declare   Function   GetDeviceCaps   Lib   "gdi32"   (ByVal   hdc   As   Long,   ByVal   nIndex   As   Long)   As   Long  
  '取指定设备信息API函数  
    Const   HORZRES   =   8  
  '三个屏幕常量  
  Const   VHORZRES   =   10  
  Const   BITSPIXEL   =   12  
   
  Private   Sub   Command1_Click()  
          Dim   mHeight   As   Long  
          Dim   mWidth   As   Long  
          Dim   mColor   As   Long  
          mWidth   =   GetDeviceCaps(Me.hdc,   HORZRES)  
          Debug.Print   mWidth   '屏幕宽度  
          mHeight   =   GetDeviceCaps(Me.hdc,   VHORZRES)  
          Debug.Print   mHeight   '屏幕高度  
          mColor   =   GetDeviceCaps(Me.hdc,   BITSPIXEL)  
          Debug.Print   mColor   '屏幕颜色位数  
   
  End   Sub  
  Top

2 楼lihonggen0(李洪根,MS MVP,标准答案来了)回复于 2003-11-04 09:10:15 得分 0

 
  Option   Explicit  
  Const   ENUM_CURRENT_SETTINGS   As   Long   =   -1&  
  Const   CCDEVICENAME   =   32  
  Const   CCFORMNAME   =   32  
  Private   Type   DEVMODE  
          dmDeviceName   As   String   *   CCDEVICENAME  
          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   *   CCFORMNAME  
          dmUnusedPadding   As   Integer  
          dmBitsPerPel   As   Integer  
          dmPelsWidth   As   Long  
          dmPelsHeight   As   Long  
          dmDisplayFlags   As   Long  
          dmDisplayFrequency   As   Long  
  End   Type  
  Private   Declare   Function   EnumDisplaySettings   Lib   "user32"   Alias   "EnumDisplaySettingsA"   (ByVal   lpszDeviceName   As   Long,   ByVal   iModeNum   As   Long,   lpDevMode   As   Any)   As   Boolean  
  Private   Sub   Form_Load()  
          Dim   DevM   As   DEVMODE  
          Call   EnumDisplaySettings(0&,   ENUM_CURRENT_SETTINGS,   DevM)  
          MsgBox   "Current   screen   width:   "   &   DevM.dmPelsWidth   &   "   pixels"   &   vbCrLf   &   _  
                          "Current   screen   height:   "   &   DevM.dmPelsHeight   &   "   pixels"   &   vbCrLf   &   _  
                          "Current   color   depth:   "   &   DevM.dmBitsPerPel   &   "   bits/pixel"  
  End   Sub  
   
  Top

3 楼lihonggen0(李洪根,MS MVP,标准答案来了)回复于 2003-11-04 09:10:47 得分 0

 
  Option   Explicit  
  Const   ENUM_CURRENT_SETTINGS   As   Long   =   -1&  
  Const   CCDEVICENAME   =   32  
  Const   CCFORMNAME   =   32  
  Private   Type   DEVMODE  
          dmDeviceName   As   String   *   CCDEVICENAME  
          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   *   CCFORMNAME  
          dmUnusedPadding   As   Integer  
          dmBitsPerPel   As   Integer  
          dmPelsWidth   As   Long  
          dmPelsHeight   As   Long  
          dmDisplayFlags   As   Long  
          dmDisplayFrequency   As   Long  
  End   Type  
  Private   Declare   Function   EnumDisplaySettings   Lib   "user32"   Alias   "EnumDisplaySettingsA"   (ByVal   lpszDeviceName   As   Long,   ByVal   iModeNum   As   Long,   lpDevMode   As   Any)   As   Boolean  
  Private   Sub   Form_Load()  
          Dim   DevM   As   DEVMODE  
          Call   EnumDisplaySettings(0&,   ENUM_CURRENT_SETTINGS,   DevM)  
          Debug.Print   "Current   screen   width:   "   &   DevM.dmPelsWidth   &   "   pixels"  
          Debug.Print   "Current   screen   height:   "   &   DevM.dmPelsHeight   &   "   pixels"  
          Debug.Print   "Current   color   depth:   "   &   DevM.dmBitsPerPel   &   "   bits/pixel"  
  End   Sub  
  Top

相关问题

  • 改变显示器分辨率的API函数是什么?
  • 请问获得屏幕分辨率的API函数是什么?
  • fling_boy (男孩) 请来,使用API函数改变分辨率。。。。
  • 那个API函数能获取屏幕的分辨率
  • 怎么用api函数调整屏幕分辨率(1024*768)和颜色(真彩色..)?
  • 请问设置系统分辨率的API函数(在线等待,立刻结分)
  • API如何获得屏幕分辨率
  • 请问一个老掉牙的问题:用那个API函数才能够获得当前显示器的分辨率?
  • 如何更改屏幕分辨率,WINDOWS有否API提供?
  • 请问取得分辨率的函数是什么?

关键词

  • 屏幕
  • api
  • debug
  • me
  • mcolor
  • getdevicecaps
  • mheight
  • mwidth
  • hdc
  • width

得分解答快速导航

  • 帖主:lcyxp

相关链接

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

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo