![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
Visual studio 2008のMFCで、とあるプログラムを作っております。
ボタンをクリックすると円が出てきて、さらにクリックするとその下に円が表示されるというプログラムまで作りました。
void C***Dlg::OnBnClickedButton1(){
CDC* pDC=m_pict.GetDC();
CRect rect;
m_pict.GetClientRect(&rect);
pDC->Rectangle(&rect);
CPen pen_red(PS_SOLID,1,RGB(255,0,0));
CBrush br_yellow(RGB(255,255,0));
CPen* oldpen=pDC->SelectObject(&pen_red);
CBrush* oldbr=pDC->SelectObject(&br_yellow);
pDC->Ellipse(-252,i-43,-212,i-3);
i=i+48;
UpdateWindow();
pDC->SelectObject(oldpen);
pDC->SelectObject(oldbr);
// TODO: ここにコントロール通知ハンドラ コードを追加します。
}
とりあえずOnBnClickedButton1関数はこんな感じです。
ここから、
(1)クリックすると円が自動で動き、途中で止まり、しばし経ってから動き出してやがて上へ消えてゆく。
(2)2つ目の円も同じように動くが、1つ目の円が止まっていて重なりそうになったらその手前で止まる。
(3)1つ目の円が上に消えたら、2つ目の円が動き出し、以降は(1)と同じ動きをする。
このようなプログラムを作りたいのですが、初心者のためどのようなツールをどのように使えば良いのかわかりません。
どなたがヒントだけでもご教授頂けませんでしょうか?
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
>(1)クリックすると円が自動で動き、途中で止まり、しばし経ってから動き出してやがて上へ消えてゆく。
>(2)2つ目の円も同じように動くが、1つ目の円が止まっていて重なりそうになったらその手前で止まる。
>(3)1つ目の円が上に消えたら、2つ目の円が動き出し、以降は(1)と同じ動きをする。
タイマーかスレッド…でしょうね。
しかし…このイベントハンドラで描画すると場合によっては消えてしまいますよ。
# 描画された後、最小化して戻してみると………。
# あるいは他のウィンドウを重ねて、どかしてみると………。
ウィンドウのメンバに円の座標の中心座標やサイズを保持するメンバを追加し、
OnPaint()などでそれらの情報から描画するようにするべきでしょう。
それぞれの円の中心座標と半径と移動速度のデータがあれば、(2)の要件は算出可能なハズです。
# X座標が同じなら計算もそう難しくないでしょう。 ズレている場合は少々面倒ですが。
# 「円 当たり判定」辺りで検索して下さいな。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Ruby pandasでsqlite3にテーブル作成・追加・読み出しでindexの取り扱い方教えてください 5 2023/03/08 09:57
- JavaScript 以前の質問だと、どの条件でも配列が表示されてしまいます。 1 2022/07/09 11:40
- JavaScript 電車の運賃を出すプログラムを作っています。 2 2022/06/22 09:36
- Visual Basic(VBA) EXCEL VBAにて動的にCheckBOXを複数作成し、同BOXにイベントを追加したい 1 2023/03/16 07:05
- Excel(エクセル) ②Excel 簡単にシートコピーしたら前日の残高と日付を変更させたい→マクロの記録でエラーが出ます 8 2022/07/16 20:40
- JavaScript セレクトボックスを2つ選択してメッセージなどを表示するには。~運賃検索プログラムを完成させたい~ 1 2022/07/22 11:10
- Visual Basic(VBA) エクセルのマクロを使ってメールを送る方法について教えてください 2 2022/03/29 01:36
- Excel(エクセル) エクセルのVBAにショートカットキーの割り当て 3 2022/07/13 14:19
- JavaScript 中百舌鳥駅と深井駅を入れ替えて選択しても同じ挙動にしたいです。 2 2022/06/24 18:45
- HTML・CSS アコーディオンメニューが思うように動作しません。 1 2023/08/20 16:48
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
グラフの交点の求め方(Excel)
-
マインクラフト(pc版)で座標...
-
エクセルで回転する座標の出し方
-
エクセルである点からの距離で...
-
始点、終点の二つの座標と半径...
-
Excel VBAでマウス移動&ダブル...
-
多角形の内部かどうか判定する方法
-
MFCでボタンを押して図形を操作...
-
多角形に長方形が入るかどうか...
-
バイキュービック補間のプログラム
-
3次元空間上の2つの座標から...
-
ワード上Shapeの位置情報を統一...
-
Fortranで直交座標から極座標変...
-
エクセルの座標表示について
-
エクセルシート上のマウスポイ...
-
シーケンサー(PLC?)で制...
-
直線上にある点の座標の求め方
-
座標系のみ拡大したい
-
C言語で制作するピラミッドアー...
-
switch文を教えてください。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
グラフの交点の求め方(Excel)
-
マインクラフト(pc版)で座標...
-
3次元空間上の2つの座標から...
-
エクセルである点からの距離で...
-
始点、終点の二つの座標と半径...
-
エクセルで回転する座標の出し方
-
閉図形の座標の配列が右回りか...
-
ワード上Shapeの位置情報を統一...
-
以下のプログラムは重心を求め...
-
C言語 配列で座標
-
ダイアログ内コントロールの位...
-
ガウシアンフィルタのCプログラム
-
空間上の二点を結ぶ直線上に任...
-
エクセルシート上のマウスポイ...
-
シーケンサー(PLC?)で制...
-
VB6のPrinter.ScaleWidth に対...
-
多角形の内部かどうか判定する方法
-
直線上にある点の座標の求め方
-
y=x^2の座標をプロットするプロ...
-
ピクチャボックスの座標取得
おすすめ情報