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

タイトル MessageBox を表示するとハンドルが取得できない
投稿日: 2006/12/02(Sat) 12:16
投稿者花ちゃん
下記コードでMessageBox を表示すると Dim himc As IntPtr = ImmGetContext(Me.Handle)
でハンドルが取得できなくなります。
VB.NET2003 では取得できますが、VB2005(EE) では、0 が返って来て失敗します。
MessageBox を表示しなければ、うまく取得できます。
Framework 2.0.50727 WinXP(SP2)
私の環境(コード)が悪いのか、何かご存知の方よろしくお願いします。

Public Class Form1
<System.Runtime.InteropServices.DllImport("Imm32.dll", _
   CharSet:=System.Runtime.InteropServices.CharSet.Auto)> _
Private Shared Function ImmGetContext( _
   ByVal hWnd As IntPtr) As IntPtr
End Function
<System.Runtime.InteropServices.DllImport("Imm32.dll", _
   CharSet:=System.Runtime.InteropServices.CharSet.Auto)> _
Private Shared Function ImmReleaseContext( _
   ByVal hWnd As IntPtr, ByVal himc As IntPtr) As Integer
End Function

Private Sub Button1_Click(ByVal sender As System.Object, _
                          ByVal e As System.EventArgs) Handles Button1.Click
   MessageBox.Show(Me, "メッセージボックスを表示します")
   Dim himc As IntPtr = ImmGetContext(Me.Handle)
   Debug.WriteLine(himc)
   ImmReleaseContext(Me.Handle, himc)
End Sub
End Class

# CreateObject("WScript.Shell").Popup _
            ("郵便番号の入力が正しくありません", 1, "自動的に閉じる")
  を使用した場合は、うまく取得できます。

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

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