在Win95中,當我們將鼠標移至某個控件上時,便會在鼠標所指之處彈出一個小窗口,告訴我們這個控件的用途,這便是“浮動提示”。這種提示方式可以及時地提供有關信息,那麼怎樣在VB中實現這種功能呢?
首先我們在Form的任意位置放一個Text1作為浮動提示的通用文本顯示框,幾個重要屬性設置為:
Appearance:0-Flat
BackColor:窗口背景顏色
BorderStyle:1-FixedSingle
ForeColor:窗口文本顏色
Height:文本框高度,一般取286左右
Visible:False
如果該Text1不是在所有按鈕設置以後才放置的,則在顯示在它之後放置的按鈕的浮動提示時,浮動提示將被該按鈕所掩蓋,這時需要按Ctrl+J或者在“Edit”菜單中選擇“BringtoFront”將Text1帶回前台。
然後,在Module1通用模塊中定義一個用於存放任意浮動提示文本的公共FloatMessage字符串變量: PublicFloatMessageAsString
再在Form的General中加入一個如下公用函數,其功能是用一個文本框自動匹配和管理所有浮動提示: PublicFunctionShowMessage()IfText1Visible=FalseThenText1Left=CurrentXText1Top=CurrentY′
以上兩句定制文本框顯示的左上角坐標,下句計算文本框長度
Text1Width=TextWidth(FloatMessage)+72
Text1Text=FloatMessage′初始化浮動提示信息
Text1Visible=True′顯示浮動提示
EndIf′刪除這個If循環將出現游走效果
EndFunction最後要做的就是在調用該函數的所有事件中為這個FloatMessage賦值。假如我們要為按鈕Command1編制浮動提示,則在Command1的MouseMove事件中寫入:
PrivateSubCommand1_MouseMove(ButtonAsInteger,_ShiftAsInteger,XAsSingle,YAsSingle)
CurrentX=Command1Left+X
CurrentY=Command1Top+Y′
以上根據按鈕位置自動提取相對坐標並且加一個當前鼠標偏移量
FloatMessage=″ThisisCommand1Button″′浮動提示內容
ShowMessage
EndSub
為了能在鼠標移開相關按鈕後將相關浮動提示隱去,我們還須在Form事件中加入:
PrivateSubForm_MouseMove(ButtonAsInteger,_ShiftAsInteger,XAsSingle,YAsSingle)
Text1Visible=False
EndSub本程序不僅僅適合於按鈕提示,在任何支持MouseMove事件的控件中都可以運用,有興趣不妨一試。
以上程序均在486DX2/66、P133的Win95和VB40中調試通過。