在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中調試通過。
|