No.2
- 回答日時:
前回の質問の回答通りにコーディングしているなら、描画処理はOnPaintに書かれいてるはずで、そうであれば質問のような現象は起こりません。
あなたがどのようにコーディングしたのかを示さないと、問題点も指摘できませんよ。
この回答への補足
ボタンのイベントに直接プログラムを記述しています。
ボタンがクリックされたときですね。セットタイマで毎秒毎秒起動するようにしています
具体的にいうと、ボタンのイベントのところにセットタイマを設置(1ミリ秒ごとに読んでいます)して、タイマーのところに描画するプログラムを記述しています。
どうしてもミリ単位で描画しなければならないのでそういう風にしています
No.3ベストアンサー
- 回答日時:
>ボタンのイベントに直接プログラムを記述しています。
ならば、ボタンクリックされたときだけ描画されます。
なんらかの原因で再描画がかかったとき(OnPaintが実行されるとき)はボタンクリックのハンドラ内に書いたコードは走りませんから消えるのは正常な動作です。
# 意図した動作では無いでしょうが。
画面描画に関するモノはOnPaint内に集約しないとそういうコトになります。
最小化/最大化して戻したとか、別のウィンドウが被さって戻したとか…
そういう「クライアント領域の再描画が必要な状況」になったらWM_PAINTメッセージで再描画を指示する。
というのがWindowsでのルールになります。
>ボタンのイベントのところにセットタイマを設置(1ミリ秒ごとに読んでいます)して、タイマーのところに描画するプログラムを記述しています。
ならば、次のタイマーイベントが発生したときに描画されるでしょう。
# 描画した後にWM_PAINTが飛んでくると消えるかも知れませんが。
ちなみに…Windowsのタイマーはそんな精度が出ない場合もありますが、そのヘンは問題ないんですか?
「Windows WM_TIMER 精度」辺りで検索してください。
メッセージキューが溜まっている状態だとWM_TIMERは後回しになれることがあるようですし。
# WM_PAINTも複数のものが1つに纏められる場合がある。
「外部機器から1msごとにデータを読む必要がある。」のであればWM_TIMERは使えませんよ。
# 取りこぼしが発生する。そういう用途にはスレッドを使うことになるでしょう。
まぁ1msで書き換えても認識できませんけどね。描画自体が1msで終わるか…も微妙なところ??
液晶モニタだと垂直同期はあまり意味ありませんけど…
75Hzでも13msいないに書き換えた内容はモニタに表示できません。
No.4
- 回答日時:
回答はOnPaintで描画処理しているわけですから、独自処理のために変更が必要だとしても、問題点が発生した場合は元々のコード(OnPaintで処理)で同じ問題が発生するか確認してみれば、原因の一端がつかめたはずです。
描画処理はOnPaintで行わないといけないのは、回答3にある通りです。
タイマーを使う場合、タイマーイベントで描画処理するのではなく、InvalidateRectで描画を更新したい領域を設定した上で、UpdateWindowを使って強制的に描画させます。
タイマーの精度が足りない場合は、マルチメディアタイマーというものも用意されています。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 画像編集・動画編集・音楽編集 ワード。頂点の編集。 4 2022/09/28 14:14
- 美術・アート イラスト評価、添削お願いします。 線画前の下書きの段階ですが、線画をする前に直せるところは直しておき 4 2022/04/03 18:14
- 美術・アート ペンタブとオフィス系ソフト 1 2022/10/08 19:27
- 美術・アート イラスト評価、添削お願いします。 線画前の下書きの段階ですが、線画をする前に直せるところは直しておき 3 2022/04/03 17:02
- その他(悩み相談・人生相談) 下描きの時や普通にイラストを描く時、なぜ一定数、短い線を沢山重ねて描く人がいるのですか? スーッて一 1 2023/01/29 02:32
- ノートパソコン Open Office.orgのDrawで描いた図形の塗りつぶしをしたい 1 2022/03/22 19:24
- 美術・アート 絵を描く時に画面に大きくキャラを描くと色を塗るのも、線画をするのもしづらくてしづらくて…… どうした 1 2022/12/08 18:58
- PowerPoint(パワーポイント) 2016EXCEL→2016PowerPointにコピペすると図形がゆがみます 5 2022/03/31 11:44
- 美術・アート 絵を職業としている人がよく絵を下手でも描き切ることが重要と言っていた記憶があったのですが、 1 2022/07/30 01:22
- 美術・アート イラストのグリザイユ法の描き方について。 グリザイユ法は必ず線画は消さなければいけないのでしょうか? 2 2022/09/02 07:24
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
win32api複数のタイマーを同時...
-
scilabでのグラフ描画時の軸設定
-
C#で壁の当たり判定と自キャラ...
-
ビットマップに描画をしてピク...
-
給紙トレイをダイアログを使わ...
-
C#を用いて描画する四角形の角...
-
画面に絵を出す方法
-
ListBoxで改行したい
-
VB2010にて、プロットエリア...
-
線の描画速度
-
ポリゴン 球体を三角形パッチ...
-
VC++2010 MFC EDIT に格子
-
worksheetFunctionクラスのVloo...
-
VBA シートのボタン名を変更し...
-
ユーザーフォームを表示中にシ...
-
【C#/Java?】try-catchでcatch...
-
エクセルエラー13型が一致しま...
-
ExcelVBAのユーザーフォームの...
-
「Columns("A:C")」の列文字を...
-
VBA(エクセル)で自動的にボタン...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ListBoxで改行したい
-
for文の実行速度を遅くしたいの...
-
Word 描画オブジェクトを削除...
-
C#を用いて描画する四角形の角...
-
ビットマップに描画をしてピク...
-
PowerPoint の VBA
-
給紙トレイをダイアログを使わ...
-
win32api複数のタイマーを同時...
-
画面に絵を出す方法
-
MFCでのコンボボックスについて
-
.NETのPictureBoxでウインドウ...
-
scilabでのグラフ描画時の軸設定
-
Excel VBA:コントロールボタン...
-
VC;;6.0のMFCで線を簡単に引け...
-
花火のアルゴリズム
-
VB.NETでグラフィックを描くと...
-
水平線の描画
-
Excel 2007で、フリーフォーム描画
-
C# DrawImage 物理サイズでな...
-
円の頂点の求め方を知りたいです。
おすすめ情報