
我当初也做过这个,好像是6年前的事了,记不太清楚了,好像如果便利目标IE的子窗口是找不到input类名也抓不到句柄的,不过我真的记不清了。但下拉框是绝对能找到的。
而且我刚用Spy++试了一下,也没抓到!
好久不玩VB+API了,
如果你就是想学习一下API,那么下面这个是我刚从我Blog里翻出来的
禁用Windows的开始按钮
'
' Paste this into a Code Mode (BAS)
'
Option Explicit
'
private 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
'
private Declare Function EnableWindow Lib "user32" (byval hwnd as Long, _
byval fEnable as Long) as Long
public Sub EnableStartMenuButton(byval bEnable as Boolean)
'
' Don't forget to re-enable it !
'
Dim lHwnd as Long
'
lHwnd = FindWindowEx(0&, 0&, "Shell_TrayWnd", vbNullString)
lHwnd = FindWindowEx(lHwnd, 0&, "Button", vbNullString)
Call EnableWindow(lHwnd, bEnable)
'
End Sub
你拿去看看,有点帮助!
Dim a
Private Sub DataCombo1_Change(Index As Integer)
If DataCombo1(a)Text <> "" Then
Command1Enabled = True
Else
Command1Enabled = False
End If
End Sub
Private Sub Form_Activate()
For j = 0 To 3
If DataCombo1(j)Text = "" Then
a = j
DataCombo1(j)SetFocus
Command1Enabled = False
Exit For
Else
End If
Next j
End Sub
Private Sub Form_Load()
For i = 1 To 3
Load DataCombo1(i)
DataCombo1(i)Top = DataCombo1(i)Top + 500 i
DataCombo1(i)Visible = True
Next i
DataCombo1(2)Text = ""
End Sub
如何得到那个控件获得了焦点? API 函数GetFocus()返回 得到焦点的控件的局部
如何得到 已知控件ID的某个控件的句柄
先用CWND类的GetDlgItem方法 得到 该控件的 CWnd 指针
然后调用CWnd类的GetSafeHwnd方法得到 该控件的句柄
if(GetDlgItem(控件ID)->GetSafeHwnd() == ::GetFocus())
甚至可以直接比较指针 不用比较句柄 用CWnd类的GetFocus方法返回 得到焦点的控件的 CWnd 指针 (不需要GetSafeHwnd了)
举例
mfc对话框工程 添加 wm_close、wm_timer消息 响应函数
oninitdialog中添加 定时器SetTimer(1, 1000, NULL);
onclose中KillTimer(1);删掉定时器
添加两个edit控件
ontimer函数中
void CMfcdlgDlg::OnTimer(UINT nIDEvent)
{
// TODO: Add your message handler code here and/or call default
//if(GetDlgItem(IDC_EDIT2)->GetSafeHwnd() == ::GetFocus())
if(GetDlgItem(IDC_EDIT2) == GetFocus())
{
MessageBox("edit2 get focus");
}
CDialog::OnTimer(nIDEvent);
}
程序 每隔1秒检测一下焦点在不在 edit2上 如果在 就messagebox输出 信息
以上就是关于visual Basic6.0 语言编程中,如何获取当前活动窗口的焦点控件句柄全部的内容,包括:visual Basic6.0 语言编程中,如何获取当前活动窗口的焦点控件句柄、vb控件获得焦点、mfc对话框程序如何判断控件是否获得焦点等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)