WMP9 中的option 里的如何在一个TAB页中的按TAB键实现在各个控件间切换 而不跳出这个TAB页,如何使用CTRL+TAB在TAB页间切换
多谢了
急!!!

解决方案 »

  1.   

    用个软键盘实现可以吗,要不就是用焦点focus的设置了
    Private Declare Function GetKeyboardLayoutList Lib "user32" _
        (ByVal nBuff As Long, lpList As Long) As Long
        Private Declare Function ImmGetDescription Lib "imm32.dll" _
        Alias "ImmGetDescriptionA" (ByVal hkl As Long, _
        ByVal lpsz As String, ByVal uBufLen As Long) As Long
        Private Declare Function ImmIsIME Lib "imm32.dll" (ByVal hkl As Long) As Long
        Private Declare Function ActivateKeyboardLayout Lib "user32" _
        (ByVal hkl As Long, ByVal flags As Long) As Long
        Private Declare Function GetKeyboardLayout Lib "user32" (ByVal dwLayout As Long) As Long
        Private Declare Function GetKeyboardLayoutName Lib "user32" Alias _
        "GetKeyboardLayoutNameA" (ByVal pwszKLID As String) As Long
        Private Declare Function LoadKeyboardLayout Lib "user32" Alias "LoadKeyboardLayoutA" _
        (ByVal pwszKLID As String, ByVal flags As Long) As Long
        Const KLF_REORDER = &H8
        Private NoOfKBDLayout As Long, i As Long, j As Long
        Private hKB(24) As Long, BuffLen As Long
        Private Buff As String
        Private RetStr As String
        Private RetCount As Long
        Private kln As String
        Private Sub Command1_Click()
        If Combo1.ListIndex = -1 Then '如果用户尚未选择输入法,显示出错信息
        MsgBox "请先选择一个输入法"
        Exit Sub
        End If
        '改变输入法顺序
        kln = String(8, 0)
        ActivateKeyboardLayout hKB(Combo1.ListIndex), 0
        res = GetKeyboardLayoutName(kln)
        res = LoadKeyboardLayout(kln, KLF_REORDER)
        ActivateKeyboardLayout hCurKBDLayout, 0
        End Sub
        Private Sub Form_Load()
        Buff = String(255, 0)
        hCurKBDLayout = GetKeyboardLayout(0) '取得目前的输入法
        NoOfKBDLayout = GetKeyboardLayoutList(25, hKB(0)) '取得所有输入法
        'ReDim layoutlist(NoOfKBDLayout) As String
        For i = 1 To NoOfKBDLayout
        If ImmIsIME(hKB(i - 1)) = 1 Then '中文输入法
        BuffLen = 255
        RetCount = ImmGetDescription(hKB(i - 1), Buff, BuffLen)
        RetStr = Left(Buff, RetCount)
        Combo1.AddItem RetStr
        Else
        RetStr = "English (American)" '英文输入法
        Combo1.AddItem RetStr
        End If
        Next
        ActivateKeyboardLayout hCurKBDLayout, 0 '恢复原来的输入法
        End Sub
      

  2.   

    将窗体的keypreview设为true,然后在窗体的keydown事件判断所按的键是不是tab或ctrl+tab,改变sstab或tabstrip控件的表示当前所选页面即可(忘了是哪个属性了,自己看一下吧),并不复杂  实在不行,用vb的应用程序向导,在向导过程选择 option对话框,再看看代码即可