C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

No.97966 の関連記事表示

<< 0 >>
■97966  Re[2]: WndProcによるマウス押下状態取得
□投稿者/ プログラマー -(2021/08/14(Sat) 17:39:56)
    とっちゃんさん回答ありがとうございます。

    フォームの表示・非表示を行うとマウスイベントが正常に取得できないケースがあります。

    ※フォーム1(スタートアップ時表示)
    Public Class Form1
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    SetDesktopBounds(0, 0, 640, 480)
    Form2.Show()
    Form2.Hide()
    Form2.SetDesktopBounds(640, 0, 640, 480)
    End Sub

    Private Sub Form1_MouseDown(sender As Object, e As MouseEventArgs) Handles Me.MouseDown
    Hide()
    Form2.Show()
    End Sub

    Private Sub Form1_MouseUp(sender As Object, e As MouseEventArgs) Handles Me.MouseUp
    Stop
    End Sub
    End Class

    ※フォーム2
    Public Class Form2
    Private Sub Form2_MouseUp(sender As Object, e As MouseEventArgs) Handles Me.MouseUp
    Stop
    End Sub
    End Class

    MouseUpイベントが取得出来ればよいのですが、上記コードではマウスボタンを離した時のイベントがどちらのフォームでも発生しません。
    そのためTimerコントロールを用いてウィンドウメッセージを取得するしかないと思い、質問いたしました。


    > もし、API が使いたいのだ!ということであれば、GetAsyncKeyState API で判定できます(マウスの左ボタンなら、VK_LBUTTON)。
    > ・GetAsyncKeyState API
    > https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-getasynckeystate?WT.mc_id=DT-MVP-32182

    上記URLではC++のコードしか記載されていませんが、VB.NETの場合はどのように書けばよろしいでしょうか?
    お手数をお掛けしますが、回答お願いいたします。

記事No.97964 のレス /過去ログ170より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -