tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
[ツリー表示へ]  [ワード検索]  [Home]

タイトル Re: WndProc
投稿日: 2011/08/20(Sat) 14:58
投稿者nobu
こんにちは。お世話になります。
WinXp VB2010  Express  いままではVB6でしたが、つい最近VB2010.

(修正がエラーで上手く出来なかったので二重投稿になってしまった)


1.
下記の様なコードにて外部機器からの情報を受け取り Form1 上の Label に表示しています。
この間にも Form1 上の TextBox1 に文字を入力したいのですが、入力できません。
Me.KeyPreview = True はLoad 時に書いています。
TextBox1.Focus() を書いてもカーソルがTextBox1にあるだけで入力できません。
Timer2 が動いていない(外部機器からの情報を受け取っていない)時は
TextBox1 に文字を入力出来ます。

2.
Form1 終了時に WndProc を開放するにはどうすればよいでしょうか。

対応策をご指導願えれば幸いです。


     Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick

            ' cds に値をセットしてから

             Hwnd2 = SendMessage(Hwnd1, WM_COPYDATA, Me.Handle, cds)

             If Not Hwnd2.Equals(IntPtr.Zero) Then
                 SetForegroundWindow(Hwnd2)
             End If

     End Sub

     Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)

         If m.Msg = WM_COPYDATA Then
             Dim cds As COPYDATASTRUCT
             cds = CType(Marshal.PtrToStructure(m.LParam, GetType(COPYDATASTRUCT)), COPYDATASTRUCT)
             tmp_thw = Marshal.PtrToStringAnsi(cds.lpData)
         Else
             MyBase.WndProc(m)
         End If

     End Sub

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。