我是初学者,在此请教各位大虾:
在VB下,我利用金山词霸的取词控件已经能够达到屏幕取词目的,但是在显示取词结果上遇到了麻烦
我是用一个窗体,上面放有3个LABEL,分别用来显示获取的单词和其在字典里的候选单词、解释,窗体随鼠标移动,
窗体始终置于所有窗体最上面
Private Function IXDictGrabSink_QueryWord(ByVal WordString As String, ByVal lCursorX As Long, ByVal lCursorY As Long, ByVal SentenceString As String, lLoc As Long, lStart As Long) As Long
Dim db1 As Database
Dim rs As Recordset
Dim qu As String
qu = GetWord(SentenceString, lLoc)Label3.Caption = "划取单词:" + qu
Call PutWindowOnTop(form1)
Set db1 = DBEngine.Workspaces(0).OpenDatabase(App.Path & "\Active.dli")
Set rs = db1.OpenRecordset("select word,dict from dict1 where word like '" & qu & "*'")
 If rs.BOF And rs.EOF Then
 
    Label1.Caption = "解释:" + " 没有此单词"
    Label2.Caption = "候选单词:没有"
    Else
    Label2.Caption = "候选单词:" + rs.Fields(0)
    Label1.Caption = "解释:" + rs.Fields(1)
End If
End Function问题是:鼠标放在空白处的时候,这个窗体还是显示在所有窗体最上面,很麻烦,我想达到的目的是:
鼠标取词的时候,该窗体显示,鼠标放在空白处的时候该窗体不显示,如何能做到?

解决方案 »

  1.   

    你应该进一步做这么一个事儿:
      判断当前鼠标所指位置是否是“空白”处?
      如果是,那你就关闭或隐藏你那个窗体(这里可以实时监测一下鼠标指针位置是否空白)
      否则,那你那个窗体就要显示一下了!这里的难点就在于:判断鼠标当前所指位置是否为空白?
    提供你几个API函数:1、GetCursorPos 获取鼠标指针的当前位置
      2、GetForegroundWindow获得前台窗口的句柄。
      3、ChildWindowFromPoint返回父窗口中包含了指定点的第一个子窗口的句柄。
    只是提供简单的思路,希望不要误导了你!