在我的主窗体中有一个“当前位置”的label,我需要在当前正在获得焦点,也就是说当用户正在操作的窗体的窗体名显示在这个Label中如当前用户正在使用课程信息查询的功能,提供这个功能的窗体名是“课程信息查询”,当这个窗体获得焦点的时候,主窗体中的label1显示:“当前位置:课程信息查询”。当然,如果是另外一个窗体,又显示:当前位置:XXXXX谢谢

解决方案 »

  1.   

    GetFocus API可以帮助你获取当前获得焦点的窗口句柄.
    GetWindow API可以帮助你获取指定句柄的窗口的标题.
    至于实时监测,用一个timer实现即可
      

  2.   

    我是说GetWindowName API,笔误
      

  3.   

    ……再汗一下,是GetWindowCaption...
      

  4.   

    你处理相应窗体的Form_GotFocus事件即可
      

  5.   

    不好意思,正正经经的纠正一下。
    因为一直用一个公用库里面的这个函数来实现类似功能,久而久之竟然把它当成了一个API。
    准确的说对应的API 应该是GetWindowTextPrivate Function GetWindowCaption(ByVal hwnd As Long) As String
        Dim strText As String, ret As Long
        ret = GetWindowTextLength(hwnd)
        If ret > 0 Then
            strText = Space(ret)
            GetWindowText hwnd, strText, ret + 1
            strText = Left(strText, ret)
            GetWindowCaption = strText
        Else
            GetWindowCaption = ""
        End If
    End Function
      

  6.   

    如果是MDI的话,可以用ActiveForm.Caption获得活动窗口的Caption
      

  7.   


    在每一个可能获得焦点的窗体中,调用form_gotfocuss事件
    form_gotfocus
      '主窗体的label控件属性变更
       MainForm.labelObj.caption =form.caption 
    end
      

  8.   

    支持rainstormmaster(暴风雨 v2.0)的方法