知道父窗口句柄和当前窗口类名,如何获取当前窗口句柄?

JLBB102 2007-05-25 03:45:00

如:
cHwnd = FindWindowEx(bHwnd, ByVal 0&, "static", vbNullString)
Debug.Print cHwnd
If cHwnd <> 0 Then
dHwnd = FindWindowEx(cHwnd, ByVal 0&, "RICHEDIT", ss) '文本编辑框的句柄
' tHwnd = FindWindow("RICHEDIT", ss)
Debug.Print dHwnd

句柄CHwnd知道,如何获取控件RICHEDIT的句柄dHwnd?
RICHEDIT控件的标题文本ss是不断变化的!
...全文
1259 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
JLBB102 2007-06-01
  • 打赏
  • 举报
回复
非常郁闷中,看来只有尝试用其它方法了 !

不知道问题出在什么地方?
Celestica 2007-05-25
  • 打赏
  • 举报
回复
我就是一层层的查找下来的!到最后一层我需要的那层(RICHEDIT句柄)卡住了,返回0,
上面的每一层句柄都找到的,而且我调试过了!


具体程序如下:
dim ss as string
ss="
回车换行
PLEASE ENTER YOUR ID,
回车换行
回车换行
MUST BE 12 CHARACTERS:
回车换行
IF YOU HAVE ANY QUESTION..."

'aHwnd = GetForegroundWindow ' hwnd is the handle to the foreground window
' Debug.Print dHwnd

aHwnd = FindWindow("GR_Execution_Class", "228X Production -C:\user\10040.obc - Runtime System")
Debug.Print aHwnd
if aHwnd>0 then
bHwnd = FindWindowEx(aHwnd, ByVal 0&, "#32770", "Template 2")
Debug.Print bHwnd
end if
if bHwnd then
cHwnd = FindWindowEx(bHwnd, ByVal 0&, "static", vbNullString)
Debug.Print cHwnd
end if
If cHwnd <> 0 Then
dHwnd = FindWindowEx(cHwnd, ByVal 0&, "RICHEDIT",ss)
debug.print dHwnd
end if

dHwnd 返回0

由于上面SS字符太多,不好定义,所以不好查找,找过资料了也没好的办法解决.
所以想过用获取光标所在的位置句柄,但是没成功,不知道知道其父窗口句柄cHwnd及自身窗口类名"RICHEDIT",,是否有什么好的API可以获取其窗口句柄dHwnd?
luoxinxin1988 2007-05-25
  • 打赏
  • 举报
回复
dHwnd = FindWindowEx(cHwnd, ByVal 0&, "RICHEDIT", vbnullstring) '文本编辑框的句柄
如果这个不行,就说明这个文本框还有父窗口,这样的话就要一层一层的找咯:
BHwnd = FindWindowEx(cHwnd, dHwnd, "RICHEDIT", vbnullstring) '从这个窗口开始查找下一个子窗口
rainstormmaster 2007-05-25
  • 打赏
  • 举报
回复
dHwnd = FindWindowEx(cHwnd, ByVal 0&, "RICHEDIT", vbnullstring) '文本编辑框的句柄
JLBB102 2007-05-25
  • 打赏
  • 举报
回复
代替试过了,返回还是0
rainstormmaster 2007-05-25
  • 打赏
  • 举报
回复
你直接用vbnullstring代替ss即可

1,488

社区成员

发帖
与我相关
我的任务
社区描述
VB API
社区管理员
  • API
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧