office交流網(wǎng)--QQ交流群號(hào)及微信交流群

Access培訓(xùn)群:792054000         Excel免費(fèi)交流群群:686050929          Outlook交流群:221378704    

Word交流群:218156588             PPT交流群:324131555

微信交流群(請(qǐng)用微信掃碼)

        

Access或VB VBA 穫?cè)〔t窗體或控件的句柄 Hwnd, 如果用API 設(shè)置焦點(diǎn)到這箇控件或窗體上

2017-09-07 21:45:00
zstmtony
原創(chuàng)
6990

Access或VB VBA 穫?cè)〔t窗體或控件的句柄 Hwnd, 如果用API 設(shè)置焦點(diǎn)到這箇控件或窗體上

可使用以下的代碼,要準(zhǔn)確定位焦點(diǎn)


1. 使用VB API SendMessage來(lái)實(shí)現(xiàn)


簡(jiǎn)易使用SendMessage,比SetFocus更爲(wèi)底層,調(diào)用速度快
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方法的介紹

將焦點(diǎn)移至指定的控件或窗體。
語(yǔ)法
object.SetFocus
object 所在處代錶對(duì)象錶達(dá)式,其值是“應(yīng)用於”列錶中的一箇對(duì)象。
説明
對(duì)象必鬚是 Form 對(duì)象、MDIForm 對(duì)象或者能夠接收焦點(diǎn)的控件。調(diào)用 SetFocus 方法以後,任何的用戶輸入將指曏指定的窗體或控件。
焦點(diǎn)隻能移到可視的窗體或控件。因爲(wèi)在窗體的 Load 事件完成前窗體或窗體上的控件是不可視的,所以如果不是在 Form_Load 事件過(guò)程完成之前首先使用 Show 方法顯示窗體的話,是不能使用 SetFocus 方法將焦點(diǎn)移至正在自己的 Load 事件中加載的窗體的。
也不能把焦點(diǎn)移到 Enabled 屬性被設(shè)置爲(wèi) False 的窗體或控件。如果已在設(shè)計(jì)時(shí)將 Enabled 屬性設(shè)置爲(wèi) False,必鬚在使用 SetFocus 方法使其接收焦點(diǎn)前將 Enabled 屬性設(shè)置爲(wèi) True。


可使用SetFocus的部分控件

1.MDI窗體。
2.窗體
3.ADODATA 控件
4.Animation 控件
5.CheckBox 控件
6.ComboBox 控件
7.CommandButton 控件
8.所有數(shù)據(jù)(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. 屬性頁(yè)對(duì)象(Property Page )
24.RichTextBox 控件
25.Silder 控件
26. 用戶自定義控件對(duì)象 (UserControl )
27.ActiveX 文檔 (UserDocument)
28.TabStrip 控件
29.TreeView 控件
30.updown 控件
31.Window 對(duì)象
分享
文章分類
聯(lián)繫我們
聯(lián)繫人: 王先生
Email: 18449932@qq.com
QQ: 18449932
微博: officecn01
移動(dòng)訪問(wèn)