自己紹介

低層をがむしゃらに走る自称プログラマ ちょっとWebとかに手を出してる

ブログ アーカイブ

2010年10月18日月曜日

四苦八苦

VB.netマルチスレッドで動かしているプログラムで

DX.GetMouseInput()

を利用できない。
私の書き方が悪いのか、なんか良く解らんが困った。

とりあえず、
WinAPIのGetAsyncKeyStateで代用

同時に問題が発生。
DX.GetMouseInput()
の場合、当然だがウィンドウ内でクリックされた時に
「ボタンが押されたよ」と返事が来るわけだが、

GetAsyncKeyStateの場合は
画面上でなくても「ボタンが押されたよ」と返事が来る。

そこで、DXライブラリによって生成されたWindowが
Active状態でのみ判定を起こすことにした

DX.GetWindowActiveFlag()

かなりブサイクな挙動だけどできたー!やったー!


'マウス左クリック
        If DX.GetWindowActiveFlag() Then
            If GetAsyncKeyState(Keys.LButton) Then
                _Mouse = DX.MOUSE_INPUT_LEFT
            End If
        End If

0 件のコメント:

コメントを投稿