2

何度かコードを書いてみましたが、毎回エラーが発生しました。基本的に、Explorer、Paint、MediaPlayer などに似た「ウィンドウ」を作成しようとしています。ここでは、ドラッグして操作し、最小化して閉じることができます。もちろん、ウィンドウをクリックした場合、その下のウィンドウ (重なり合う可能性があります) は影響を受けません。

私はこれを行う方法を知っています。私は Window と呼ぶクラスのリストを持っており、それをループし、マウスクリックの場所を含む最初のウィンドウとのみ対話します。このように、他のウィンドウの重なりは影響を受けません。[1]

次に、ユーザーが「両方のボタンの交点」をクリックしたときに、重なっている 2 つのボタンがアクティブにならないようにする必要がありました。上記で使用したのと同じ方法を使用してこれを処理しました。[2]

しかし、私が今直面している問題は、左クリックを押したままボタンをクリックしないことにした場合、マウスをボタンから離して左クリックを放すことです。アクティベートされません。しかし、マウスをボタンの境界から外して別のボタンに移動すると、新しいボタンがアクティブになります。それはすべきではありません。[3]

私のセットアップは次のようなものです: Window というクラスがあります。Window には、Interface というクラスのリストがあります (WinForms の Control クラスに似ています)。また、左/右が現在ダウンしており、前の処理でダウンしていた場合、各インターフェイスには 4 つの bool を含む構造体があります。(左前、右前、左左、右右)

だから、私はそれを破棄する準備ができています (私はまだしていないので、まだソース コードを持っています) が、オブジェクト指向タイプのアプリケーションを作成するための優れた構造が必要です。ただし、WinForms は使用していません。構造だけで助けが必要なので、実際のコードは必要ありません。説明だけで十分です。上記の3つの問題を回避する必要があります。

4

2 に答える 2

0

4 つのブール値 (xna と同様) を使用した構造を持つ代わりに、マウスが「どこにあるか」を伝える方法を作成してはどうでしょうか。したがって、ある意味では、マウスはPaint であるウィンドウ番号 5 にあり ユーザーボタンであるインターフェイス/コントロール番号 2でマウスを押したままにしています。それはうまくいくように聞こえます。

于 2013-09-28T22:37:08.037 に答える