安徽彩票大奖 欧洲百万乐透大奖 七星彩17049规律大奖 双色球中大奖领奖过程 3d近期中大奖故事 广州番禺中福彩大奖的 鸡男注定会中大奖 2016江苏彩民中大奖 趣彩网大奖网黑平台 大乐透4.97亿大奖 霍邱一彩民6元中双色球547万大奖 双色球黑龙江中大奖图 体育彩票中大奖名单 什么样的人能中大奖 彩票大奖作假

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

2017-09-07 21:45:00
zstmtony
原创
994

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

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


1. 使用VB API SendMessage来实现


简?#36164;?#29992;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.SetFocus
object 所在处代表对象表达式,其值是“应用于”列表中的一个对象。
说明
对象必须是 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 对象
分享
? 1999-2019 Office交流网?? 中山市天鸣科技发展有限公司 粤ICP备10043721号-5 SQL查询:19
内存占用:7.75MB
PHP 执行时间:0.21
双色球大奖2000年
安徽彩票大奖 欧洲百万乐透大奖 七星彩17049规律大奖 双色球中大奖领奖过程 3d近期中大奖故事 广州番禺中福彩大奖的 鸡男注定会中大奖 2016江苏彩民中大奖 趣彩网大奖网黑平台 大乐透4.97亿大奖 霍邱一彩民6元中双色球547万大奖 双色球黑龙江中大奖图 体育彩票中大奖名单 什么样的人能中大奖 彩票大奖作假