当我激活其它窗体时候, getfocus总是=0
哎~ 搞不懂了, 不是说getfocus会返回当前被激活窗体的hwnd吗? 难道只能是本程序自己的窗体?请高手指教

解决方案 »

  1.   

    FindWindow得到句柄,如果你在程序中要得到你程序窗体的句柄,可以直接用formname.hwnd得到
    Private Declare Function FindWindow Lib "user32" _
       Alias "FindWindowA" _
      (ByVal lpClassName As String, _
       ByVal lpWindowName As String) As Long
      

  2.   

    我是想得到有焦点的其它窗体hwnd!(不是本程序)
      

  3.   

    试试这个吧,,函数声明 如下GetActiveWindow VB声明 
    Declare Function GetActiveWindow Lib "user32" Alias "GetActiveWindow" () As Long 
    说明 
    获得活动窗口的句柄 
    返回值 
    Long,活动窗口的句柄,如没有窗口处于活动状态,则返回零值 
      

  4.   

    是的,不行,好象需要一个API将自己的程序和当前窗口的程序连接起来什么的,好象在电脑爱好者上看过,应该是去年什么时候的。
      

  5.   

    试一试这条
    Private Declare Function GetForegroundWindow Lib "user32" () As Long
      

  6.   

    键盘、鼠标焦点是属于某个线程的
    所以一般情况下getfocus只对自身线程有效可以先用“AttchThreadInput”(好像是这个名字。现在在网吧,没MSDN)捆绑线程输入
    再用getfocus
    最后注意取消