2017-11-13 11 views
0

私は現在エディタを使っています。私はBGI上にクリック可能なボタンを置く必要があります。ボーランドグラフィックインターフェイスのクリック可能なボタンを手動でプログラミングする

は、その仕事をして、今私は、outtextxyを使用してのような何かをしたことがouttextからの座標と同じである場合、私は、mousexmouseyによって得if使用して座標を作った後の座標を与えました。それはまだ私のために十分ではありません

、私は手動で各outtextについてif条件を入れて(作っif条件は巨大である私がouttextを使用する場合、それは同時に作成する機能を作成したいですコーディングジョブ)。

この機能を実行するにはどうすればいいですか?

答えて

0

BGIは、ウィンドウ/ウィジェットマネージャではありませんでした。これは、低レベルのプリミティブライブラリです。あなたが望むことをするためには、WMのフォームを上に実装する必要があります。

ボタンを追加するだけで、ボタンの位置をカプセル化するボタンクラス、ボタンを描画するコード、(x、y)座標がボタン内にあるかどうかを判断するコード、ボタンの描画状態(ホバー、押された、正常な)、およびクリックイベント。

メインループでは、すべてのボタンをループして、マウス(x、y)がボタン内にあるかどうかを確認します。マウスイベントがクリックである場合、ボタンのクリックイベントを呼び出します。

テキスト/編集ウィンドウなど、アプリケーションにある他のウィジェットタイプについても同様です。これはすべてのウィンドウ/ウィジェットマネージャがどのように機能するかです。

アプリケーションでこれを実装する方法は、あなた次第です。 std::vector<BGIWidget>(またはあなたのウィジェットスーパークラスの名前は何でも構いません)をお勧めします。あなたがする必要があるのは、描画、マウスのホバー/入力/離し/クリックイベントなどを処理するウィジェットのリストをループすることです。

+0

Coudあなたは私に例を挙げてください?特定のコードの使い方を知らないところにコメントするだけです – Hipreme

関連する問題