2013/07/10

クラスでウィンドウメッセージを受け取る

クラスとウィンドウ(.net framework)

・何年も前に広まってた手法ですが覚書。。。

クラス内でNativeWindowを派生して、見えないウィンドウを作成するサンプル


class.vb

Namespace myNamespace
 
    Public Class myClass
 
        Inherits NativeWindow
 
        Public Sub New()
 
            MyBase.New()
            Dim cp As New CreateParams
            cp.X = 0
            cp.Y = 0
            cp.Height = 0
            cp.Width = 0
            cp.Style = WS_EX_TOOLWINDOW Or WS_POPUP Or WS_VISIBLE Or WS_SYSMENU Or WS_MAXIMIZEBOX
            Me.CreateHandle(cp)
 
        End Sub
 
        Protected Overrides Sub Finalize()
 
            Me.DestroyHandle()
 
        End Sub
 
        Protected Overrides Sub WndProc(ByRef WMSG As Message)
 
            Select Case (WMSG.Msg)
 
                Case WM_USER_XXX
                    Dim myWParam = WMSG.WParam.ToInt32
                    Dim myLParam = WMSG.LParam.ToInt32
 
            End Select
 
            MyBase.WndProc(WMSG)
 
        End Sub
 
    End Class
 
End Namespace

0 件のコメント:

コメントを投稿