您现在的位置: 中国男护士网 >> 考试频道 >> 计算机等级 >> 二级辅导 >> ACCESS >> 辅导 >> 正文    
  窗体自动居中代码 【注册男护士专用博客】          

窗体自动居中代码

www.nanhushi.com     佚名   不详 

  使窗体居中显示代码

  access中的窗体虽然设置了自动居中,但是打开后总是有点不居中的感觉,加下如下代码可以做到真正居中显示

  Private Sub Form_Load()

  DoCmd.Echo False

  Dim x, y As Integer

  DoCmd.Maximize

  x = Me.WindowWidth

  y = Me.WindowHeight

  DoCmd.Restore

  DoCmd.Echo True

  Move (x - Me.WindowWidth) / 2, (y - Me.WindowHeight) / 2

  End Sub

  下列代码适用于accessXP以上

  '使用方法:

  'Private Sub Form_Load()

  'moveFormToCenter Me '居中

  'End Sub

  'Private Sub Form_Load()

  'moveFormToCenter Me, 3000, 2000 '调整窗体大小并居中

  'End Sub

  Option Compare Database

  Option Explicit

  Type RECT

  x1 As Long

  y1 As Long

  x2 As Long

  y2 As Long

  End Type

  Public Declare Function GetClientRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long

  '菜单栏高:22

  '工具栏高:26

  '状态栏高:20

  Public Function moveFormToCenter(ByRef Frm As Form, Optional ByVal longFormWidth As Long = 0, Optional ByVal longFormHeight As Long = 0)

  Dim lngW, lngH As Long

  lngW = GetaccessClientWidth() - 4 '-4为测试微调值

  lngW = lngW * 15

  lngH = GetaccessClientHeight() - 4 '-4为测试微调值

  'lngH = lngH - (22 * 1) '一个菜单栏

  lngH = lngH - (26 * 1) '一个工具栏

  'lngH = lngH - (20 * 1) '一个状态栏

  lngH = lngH * 15

  If longFormWidth + longFormHeight = 0 Then

  Frm.Move (lngW - Frm.WindowWidth) / 2, (lngH - Frm.WindowHeight) / 2

  End If

  If longFormWidth > 0 And longFormHeight > 0 Then

  Frm.Move (lngW - longFormWidth) / 2, (lngH - longFormHeight) / 2, longFormWidth, longFormHeight

  End If

  End Function

  Public Function GetaccessClientWidth() As Integer

  Dim R As RECT

  Dim hwnd As Long

  Dim RetVal As Long

  hwnd = Application.hWndaccessApp

  RetVal = GetClientRect(hwnd, R)

  'Debug.Print R.x2

  'Debug.Print R.x1

  GetaccessClientWidth = R.x2 - R.x1

  End Function

  Public Function GetaccessClientHeight() As Integer

  Dim R As RECT

  Dim hwnd As Long

  Dim RetVal As Long

  hwnd = Application.hWndaccessApp

  RetVal = GetClientRect(hwnd, R)

  'Debug.Print R.y2

  'Debug.Print R.y1

  GetaccessClientHeight = R.y2 - R.y1

  End Function

  相关链接:

  2008年下半年全国计算机等级考试报名信息汇总

  更多信息请访问:计算机等级考试站 计算机等级考试在线题库 计算机等级考试论坛

 

文章录入:杜斌    责任编辑:杜斌 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
     

    联 系 信 息
    QQ:88236621
    电话:15853773350
    E-Mail:malenurse@163.com
    免费发布招聘信息
    做中国最专业男护士门户网站
    最 新 热 门
    最 新 推 荐
    相 关 文 章
    没有相关文章
    专 题 栏 目

      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)                            【进男护士社区逛逛】
    姓 名:
    * 游客填写  ·注册用户 ·忘记密码
    主 页:

    评 分:
    1分 2分 3分 4分 5分
    评论内容:
  • 请遵守《互联网电子公告服务管理规定》及中华人民共和国其他各项有关法律法规。
  • 严禁发表危害国家安全、损害国家利益、破坏民族团结、破坏国家宗教政策、破坏社会稳定、侮辱、诽谤、教唆、淫秽等内容的评论 。
  • 用户需对自己在使用本站服务过程中的行为承担法律责任(直接或间接导致的)。
  • 本站管理员有权保留或删除评论内容。
  • 评论内容只代表网友个人观点,与本网站立场无关。