当前位置:萝卜系统下载站 > 办公软件教程 > 详细页面

Access或VB VBA 取得了窗体或控件的句柄 Hwnd, 如果用API 设置焦点到这个控件或窗体

Access或VB VBA 取得了窗体或控件的句柄 Hwnd, 如果用API 设置焦点到这个控件或窗体

更新时间:2023-07-05 文章作者:未知 信息来源:网络 阅读次数:

Microsoft Office Access是由微软发布的关系数据库管理系统。它结合了 MicrosoftJet Database Engine 和 图形用户界面两项特点,是 Microsoft Office 的系统程序之一。Microsoft Office Access是微软把数据库引擎的图形用户界面和软件开发工具结合在一起的一个数据库管理系统。它是微软OFFICE的一个成员, 在包括专业版和更高版本的office版本里面被单独出售。2018年9月25日,最新的微软Office Access 2019在微软Office 2019里发布。

Access或VB VBA 获取了窗体或控件的句柄 Hwnd, 如果用API 设置焦点到这个控件或窗体上

可使用以下的代码,要准确定位焦点


1. 使用VB API SendMessage来实现


简易使用SendMessage,比SetFocus更为底层,调用速度快
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Const WM_SETFOCUS = &H7
SendMessage childhwnd, WM_SETFOCUS, 0, ByVal 0&

2. 如果 用API Setfocus也是可以的。



VB SetFocus方法的介绍

将焦点移至指定的控件或窗体。语法object.SetFocusobject?所在处代表对象表达式,其值是“应用于”列表中的一个对象。说明对象必须是?Form?对象、MDIForm?对象或者能够接收焦点的控件。调用?SetFocus?方法以后,任何的用户输入将指向指定的窗体或控件。焦点只能移到可视的窗体或控件。因为在窗体的 Load 事件完成前窗体或窗体上的控件是不可视的,所以如果不是在 Form_Load 事件过程完成之前首先使用?Show?方法显示窗体的话,是不能使用?SetFocus?方法将焦点移至正在自己的 Load 事件中加载的窗体的。也不能把焦点移到?Enabled?属性被设置为?False?的窗体或控件。如果已在设计时将?Enabled?属性设置为?False,必须在使用?SetFocus?方法使其接收焦点前将?Enabled?属性设置为?True。


可使用SetFocus的部分控件

1.MDI窗体。2.窗体3.ADODATA 控件4.Animation 控件5.CheckBox 控件6.ComboBox 控件7.CommandButton 控件8.所有数据(Data)控件9.DateTimePicker 控件10.DirListBox 控件11.DriveListBox 控件12.FileListBox 控件13.HScrollBar 、VScrollbar 控件14.FlatScrollbar 控件15.ListBox 和 ListView 控件16.TextBox 控件17.Imagecombo 控件18.Masked Edit 控件19.OLE 容器控件20.MSFlexGrid 和 MSHFlexGrid 控件(别把两个控件混一起了)21.OptionButton 控件22.PictureBox 控件23. 属性页对象(Property Page )24.RichTextBox 控件25.Silder 控件26. 用户自定义控件对象 (UserControl )27.ActiveX 文档 (UserDocument)28.TabStrip 控件29.TreeView 控件30.updown 控件31.Window 对象
Microsoft Access在很多地方得到广泛使用,例如小型企业,大公司的部门。

温馨提示:喜欢本站的话,请收藏一下本站!

本类教程下载

系统下载排行

网站地图xml | 网站地图html