解决方案 »

  1.   

    永远获不到焦点,但又可以响应在窗体内的操作!
    Who knows???
      

  2.   

    你看看这段独家代码!这可是我试了若干次后的结果,一定适合你的.SetWindowLong Me.hwnd, GWL_EXSTYLE, CLng(&H8000000) '把自己设置成一个不能获得焦点的窗口你是不是想做输入法? http://www.csdn.net/expert/topic/79/79427.shtm
      

  3.   

    只用vb是肯定不行的!!!因为这要用到钩子函数,把所有的程序都挂上一个dll文件,而dll用vb是做不来的。
      

  4.   

    y1g1y1:不行的??
    Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
    Private Sub Form_Load()
      SetWindowLong Me.hwnd, GWL_EXSTYLE, CLng(&H8000000)
    End Sub
      

  5.   

    输入法窗口,实际是两种窗口:
    输入法状态栏是Region, 是由Rgn相关函当选操作出来的。
    输入法的文字显示窗口则是windows 窗口类中的IME以下代码演示用VB创建IME窗口module:Option ExplicitPublic Type RECT
            Left As Long
            Top As Long
            Right As Long
            Bottom As Long
    End TypeForm1:Option ExplicitPrivate Declare Function CreateWindowEx Lib "user32" _
        Alias "CreateWindowExA" (ByVal dwExStyle As Long, _
                                 ByVal lpClassName As String, _
                                 ByVal lpWindowName As String, _
                                 ByVal dwStyle As Long, _
                                 ByVal x As Long, _
                                 ByVal y As Long, _
                                 ByVal nWidth As Long, _
                                 ByVal nHeight As Long, _
                                 ByVal hWndParent As Long, _
                                 ByVal hMenu As Long, _
                                 ByVal hInstance As Long, _
                                 lpParam As Any) As Long
                                 Private Const WM_CREATE = &H1Private Const WS_EX_TOPMOST = &H8&Private Const WS_EX_LEFT = &H0Private Const WS_EX_LTRREADING = &H0
    Private Const WS_EX_RIGHTSCOLLBAR = &H0Private Const WS_BORDER = &H800000Private Const WS_POPUP = &H80000000
    Private Const WS_DISABLED = &H8000000
    Private Const WS_CLIPSIBLINGS = &H4000000
    Private Const WS_OVERLAPPED = &H0&
    Private Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As LongPrivate Const SW_NORMAL = 1
    Private Const SW_PARENTOPENING = 3
    Private Const SW_SHOW = 5Private Declare Function DestroyWindow Lib "user32" (ByVal hwnd As Long) As LongPrivate Declare Function GetClientRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As LongPrivate Declare Function CreateRectRgn Lib "gdi32" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As LongPrivate Declare Function FrameRect Lib "user32" (ByVal hdc As Long, lpRect As RECT, ByVal HBRUSH As Long) As LongPrivate Declare Function FillRgn Lib "gdi32" (ByVal hdc As Long, ByVal HRGN As Long, ByVal HBRUSH As Long) As LongPrivate Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As LongPrivate Declare Function CreateSolidBrush Lib "gdi32" (ByVal crColor As Long) As Long
    Dim HwndNew As LongPrivate Sub Form_Load()
        
        Dim LREC As RECT
        
        Dim Hrect As Long
        
        Dim Hwdc As Long
        
        Dim WCOLOR As Long
        
        Dim HBRUSH As Long
        
        Dim HRGN As Long
            
        HwndNew = CreateWindowEx(WS_EX_TOPMOST, "IME", "New", WS_POPUP Or WS_DISABLED Or WS_CLIPSIBLINGS Or WS_OVERLAPPED, _
                    0, 0, 200, 200, Me.hwnd, 0, 0, WM_CREATE)
                    Debug.Print HwndNew
        
        ShowWindow HwndNew, SW_NORMAL
                     
        Hrect = GetClientRect(HwndNew, LREC)
        
        Hwdc = GetDC(HwndNew)
        
        WCOLOR = RGB(255, 255, 255)
        
        HRGN = CreateRectRgn(LREC.Left, LREC.Top, LREC.Right, LREC.Bottom)
        
        HBRUSH = CreateSolidBrush(WCOLOR)
        
        FillRgn Hwdc, HRGN, HBRUSH
        
    End SubPrivate Sub Form_Unload(Cancel As Integer)
        DestroyWindow HwndNew
    End Sub
      

  6.   

    在form继承类中重载CreateParams,重定义ExStyle属性:namespace modifyparams
    {
        public partial class Form1 : Form
        {
    protected override CreateParams CreateParams
            {
                get
                {
                    CreateParams cp = base.CreateParams;
                    cp.ExStyle |= (int)0x08000000L;
                    return cp;
                }
            }
    public Form2()
            {
                InitializeComponent();
            }
    }
    }