Access交流网
  • 设为首页|收藏本站|繁体中文|手机版
  •     
  • Access培训-Access开发平台-Access行业开发

  • 首页
  • 资讯
  • 技巧
  • 源码
  • 行业
  • 资源
  • 活动
  • 关于

技巧

ACCESS数据库

启动/设置/选项/背景

修复/压缩

安全/加密/解密

快捷键

版本升级/其它等

数据表

命名方式/设计规范

表设计

查询

Sql语言基础

选择查询

更新查询

删除查询

追加查询

生成表查询

交叉表查询

SQL特定查询

查询参数

查询综合应用

界面/窗体/控件

标签

文本框

命令按钮

组合框/列表框

选项组/复选框/选项按钮

选项卡

子窗体

窗体本身/综合应用

其它

报表打印

报表设计

高级报表

模块/函数/VBA/API/系统

VBA基础

内置函数

调试/跟踪/Debug

模块/类模块

API/COM/系统相关

字符数字日期

网络通信游戏

加密解密安全

文件处理

经典算法

宏/菜单/工具栏/功能区

宏/脚本

菜单/工具栏

功能区/Ribbon

图表/图形/图像/多媒体

图表

图形/图像

音频

视频/动画

DAO/链接表/ADO/ADP

DAO/链接表/ODBC

ADO/RDO

ADP

ActiveX/第三方控件/插件

Treeview树控件

ListView列表控件

Toolbar工具栏控件

微软其它控件

Dbi-Tech

CodeJock

Grid++Report

FastReport

ComponentOne

加载项/插件/Addin

OFFICE集成/导入导出/交互

Excel导入导出/交互

Word导入导出/交互

PPT交互

Outlook控制/邮件

Text文本文件/INI/CSV

PDF/SWF/XML格式

CAD格式

Sharepoint/其它Office

SqlServer/其它数据库

表

视图

存储过程/触发器

函数

用户/权限/安全

调试/维护

SqlServer其它/综合

发布/打包/文档/帮助

开发版/运行时

打包/发布/部署

开发文档/帮助制作

Access完整行业系统

采购管理系统

销售管理系统

仓库管理系统

人力资源管理HRM

CRM管理系统

MRP/ERP管理系统

BRP/流程优化

其它管理系统

心得/经验/绝招
其它/杂项
Excel技巧

Excel应用与操作

Excel开发编程

Word技巧

Word应用与操作

Word开发编程

Outlook技巧

Outlook应用与操作

Outlook开发编程

热门文章

  • Access选择记录即行全..
  • 在ACCESS中扩展条件格..
  • Access数据表窗体隐藏..
  • 在 Access 中利用生..
  • 获取子窗体的数据源
  • 获取和设置ACCESS主窗..

最新文章

  • Access动态修改子窗体..
  • 窗体属性 弹出方式、模式和..
  • Access实现任意文本框..
  • Access引用是变量的控..
  • Access添加图片删除图..
  • Access子窗体控件绑定..

联系方式

Access交流网(免费Access交流)

QQ:18449932 

网  址:www.access-cn.com

当前位置:首页 > 技巧 > 界面/窗体/控件
界面/窗体/控件

获取和设置ACCESS主窗体大小及位置代码

获取和设置access主窗体大小及位置代码
'//按 ALT+F11 转到 vba 界面,
'//新建一个模块
'//将以下代码 COPY 进去
'//将光标停在 Function RunTest() 这行
'//按 F5 即可运行
'//运行结束后转到 access 使用界面,即可看到效果
'-----------------------------------------------
'自定义数据类型,GetaccessWindow的返回值
Public Type AWPix
    Left As Long
    Top As Long
    Width As Long
    Height As Long
End Type

'-----------------------------------------------
'获取、设置 Window状态的API
Public Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, _
    ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
Public Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long
Public Declare Function MoveWindow Lib "user32" (ByVal hwnd As Long, ByVal X As Long, _
    ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal bRepaint As Long) As Long

Public Type RECT '屏幕坐标中随同窗口装载的矩形
    Left As Long
    Top As Long
    Right As Long
    Bottom As Long
End Type

'-----------------------------------------------
'获取分辩率设置的 API
Public Declare Function apiGetDC Lib "user32" Alias "GetDC" (ByVal hwnd As Long) As Long
Public Declare Function apiReleaseDC Lib "user32" Alias "ReleaseDC" (ByVal hwnd As Long, _
    ByVal hdc As Long) As Long
Public Declare Function apiGetDeviceCaps Lib "gdi32" Alias "GetDeviceCaps" (ByVal hdc As Long, _
    ByVal nIndex As Long) As Long
Public Const LOGPIXELSX = 88
Public Const LOGPIXELSY = 90
Public Const DIRECTION_VERTICAL = 1
Public Const DIRECTION_HORIZONTAL = 0


'-----------------------------------------------
'获取窗体缩放状态的 API
'缩放状态
Public Declare Function IsZoomed Lib "user32" (ByVal hwnd As Long) As Long
'是否最小化
Public Declare Function IsIconic Lib "user32" (ByVal hwnd As Long) As Long
'是否可见
Public Declare Function IsWindowVisible Lib "user32" (ByVal hwnd As Long) As Long


'---------------------------------------------
'设置窗体状态的 API
Public Const SW_HIDE = 0            '隐藏
Public Const SW_SHOWNORMAL = 1      '普通(还原)
Public Const SW_SHOWMINIMIZED = 2   '最小化
Public Const SW_SHOWMAXIMIZED = 3   '最大化

Public Declare Function apiShowWindow Lib "user32" _
    Alias "ShowWindow" (ByVal hwnd As Long, _
    ByVal nCmdShow As Long) As Long
'----------------------------------------------

'像素转换成缇,本站以前文章中已经介绍过了。
'    关于单位“缇”与“像素”的转换,以及缇与其他单位(例如:厘米)之间的转换《窗体》

Function PixelsToTwips(rlngPixels As Long, rlngDirection As Long) As Long
On Error GoTo PixelsToTwips_Err
   
    Dim lngDeviceHandle As Long
    Dim lngPixelsPerInch As Long
    lngDeviceHandle = apiGetDC(0)
    If rlngDirection = DIRECTION_HORIZONTAL Then  '水平X方向
        lngPixelsPerInch = apiGetDeviceCaps(lngDeviceHandle, LOGPIXELSX)
    Else       '垂直Y方向
        lngPixelsPerInch = apiGetDeviceCaps(lngDeviceHandle, LOGPIXELSY)
    End If
    lngDeviceHandle = apiReleaseDC(0, lngDeviceHandle)
    PixelsToTwips = rlngPixels * 1440 / lngPixelsPerInch
   
PixelsToTwips_Exit:
    On Error Resume Next
    Exit Function
   
PixelsToTwips_Err:
    MsgBox Err.Description, vbExclamation, "www.office-cn.net"
    Resume PixelsToTwips_Exit
   
End Function

'===========================================================
' 过程及函数名:  RunTest
' 版本号      :  --
' 说明        :  本过程只用于演示如何用VBA+WINAPI 控制
'                 access 主窗体的位置和大小
' 引用        :  --
' 输入参数    :  --
' 输出值      :  --
' 返回值      :  --
' 调用演示    :  RunTest
' 最后修改日期:  2008-1-30 16:36:00
'===========================================================
Function RunTest()
    '显示当前access主窗体的高度
    Debug.Print GetaccessWindow.Height
    '设置当前access窗体:
    '宽 553像素,高400像素,距离上边20像素,左边12像素
    SetaccessWindow 12, 20, 553, 400
End Function


'===========================================================
' 过程及函数名:  GetaccessWindow
' 版本号      :  --
' 说明        :  获取 access 主窗体的大小及位置,获取单位是
'                 像素,如果要转为access的度量衡单位“Twip缇”
'                 可以用函数 PixelsToTwips 转换。
'                 注意,本函数还定义了一个 Type AWPix
' 引用        :  --
' 输入参数    :  --
' 输出值      :  --
' 返回值      :  返回自定义类型 AWPix 数据。
' 调用演示    :  Debug.Print GetaccessWindow.Height
' 最后修改日期:  2008-1-30 16:36:00
'===========================================================
Function GetaccessWindow() As AWPix
    Dim intWidth As Long, intHeight As Long
    Dim tAWPix As AWPix
    Dim lngRet As Long
    Dim Rc As RECT
    Dim lngHwndMDI As Long
    '获取access主窗体内嵌子对象的句柄
    lngHwndMDI = FindWindowEx(Application.hWndaccessApp, _
        0&, "MDIClient", "")
    '上边距中不包含工具栏和菜单栏。尝试去掉工具栏看一下结果,然后再加上工具栏再看看结果
    'lngRet = GetWindowRect(lngHwndMDI, Rc)
   
    '获取整个access窗体最外侧的尺寸,在Win2003+acc2003的情况下最大化时每边都需要+4
    lngRet = GetWindowRect(Application.hWndaccessApp, Rc)
   
   
   
    With tAWPix
        .Top = Rc.Top
        .Left = Rc.Left
        .Height = Rc.Bottom - Rc.Top
        .Width = Rc.Right - Rc.Left
    End With
   
    GetaccessWindow = tAWPix
End Function


'===========================================================
' 过程及函数名:  SetaccessWindow
' 版本号      :  --
' 说明        :  设置 access 主窗体的大小及位置,设置单位是像素
' 引用        :  --
' 输入参数    :  --
' 输出值      :  --
' 返回值      :  --
' 调用演示    :  SetaccessWindow 0,0,150,566
' 最后修改日期:  2008-1-30 16:36:00
'===========================================================
Function SetaccessWindow(ByVal XLeft As Long, _
    ByVal YTop As Long, _
    ByVal XWidth As Long, _
    ByVal YHeight As Long)
   
    Dim lngHwndMDI As Long
    Dim lngRet As Long
    Dim Rc As RECT
    If IsZoomed(Application.hWndaccessApp) = 1 Or _
        IsIconic(Application.hWndaccessApp) = 1 Then
        apiShowWindow Application.hWndaccessApp, SW_SHOWNORMAL
    End If
    MoveWindow Application.hWndaccessApp, XLeft, YTop, XWidth, YHeight, True
End Function

(界面_窗体_子窗体-相关文章技巧链接):
如何去掉Access窗体最大化后右上角的还原按钮
发布人:lxh1968-accessbbs  
分享到:
点击次数:  更新时间:2009-02-18 08:58:18  【打印此页】  【关闭】
上一条:ACCESS-VBA编程 第五章 ACCESS表1  下一条:ACCESS-VBA编程 第三章 日期、时间函数2



相关文章

  • • Access动态修改子窗体的默认值
  • • 窗体属性 弹出方式、模式和代码acDialog模式的区别
  • • Access实现任意文本框的字符插入
  • • Access引用是变量的控件
  • • Access添加图片删除图片和更改图片
  • • Access子窗体控件绑定其他Access对象
  • • Access子窗体页面上下翻动
  • • 根据当前屏幕分辨率自动设置Access主窗体大小及居中显示

热门文章

  • [2016-11-12] Access数据表窗体隐藏列和取消隐藏列access数据库
  • [2009-07-17] 界面魔法设置access数据库
  • [2009-02-13] ACCESS-VBA编程 第三章 日期、时间函数1access数据库
  • [2003-12-13] 控件布局的小技巧access数据库
  • [2003-12-12] 判断你的程序是在MDE还是在ADE中运行access数据库
  • [2017-08-26] Access引用是变量的控件access数据库

热门产品

公司动态|在线留言|在线反馈|友情链接|会员中心|站内搜索|网站地图

Access交流网 版权所有 1999-2018 粤ICP备10043721号

QQ:18449932

Access应用 Access培训 Access开发 Access平台

access|数据库|access下载|access教程|access视频|access软件

Powered by MetInfo 5.3.12 ©2008-2023  www.metinfo.cn