• ベストアンサー

windowsプログラミング(画面の更新について)

windowsプログラミングの練習をしているのですが、連続して画面を更新すると、どうしても画面のちらつきが出てしまいます。連続して更新しても、画面のちらつきを回避できる方法は無いでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • circuit
  • ベストアンサー率72% (13/18)
回答No.2

windowsで描画を行うとき、通常は描画する前に一度画面が消去され、そこへ新しく描画をしていきます。 GUIや固定画面などでは、この消去は気にならないものですが、連続で描画を行うとちらつきとして見えてきます。 これを対処するには、一度バックバッファ(メモリ上の画面)に描画を行い、それをBitBltなどでメインウィンドウに転送するようにします。 #転送は消去を行わず上書きっぽくなるのでちらつきは見えません バックバッファに書いて転送する方法をダブルバッファリングといいます。 このキーワードで検索すると結構参考が出てきますよ。 ちなみにコレを実装するには、メインウィンドウと互換のあるビットマップ(CreateCompatibleBitmap)とデバイスコンテキスト(CreateCompatibleDC)を生成します。 SelectObjectで互換HDCに互換Bitmapを選択させた状態で、互換HDCに対して描画を行います。 このとき削除を自前で実装(塗りつぶしなど)しないと画面が上書き状態になります。 描画後に、メインウィンドウのコンテキストハンドルにBitBltします。 具体的なコードは、ぐぐってみてください。

参考URL:
http://www13.plala.or.jp/kymats/study/MULTIMEDIA/bmp_multibuf.html

その他の回答 (1)

  • clsdi99
  • ベストアンサー率63% (31/49)
回答No.1

よく最初に気になる問題ですね。 メモリデバイスコンテキストを利用すると良いと思いますよ。 CreateCompatibleDCなどを調べてみてください。

関連するQ&A

  • ウィンドウがおかしくなる(windowsプログラミング)

    シューティングゲームを作ろうと思っています。自分のキャラを動かしていると、しばらくしてから、ウィンドウの表示がおかしくなる(タイトルバーが消える。ウィンド内が正しい色で描画されなくなる)などがおこります。更新してもウィンドが元に戻ることはありません。ウィンドウを更新する内容をプログラムに書き加え、キーボードにキーを割り当て、プログラムを実行してから、ひたすら更新ボタンを押し続けてみたところ、しばらくして同じ症状が現れました。原因がウィンドウの更新にあるような気がするのですが、コンパイルエラーもなく原因がよくわかりません。windowsプログラミングは初めてなのでご存知の方がいたら教えてください。

  • WINDOWSの更新においてIE7を更新したくない時

    WINDOWS XPを使っているのですがココ最近毎日画面右下のアイコン郡のところにWINDOWSの更新が出てきます。 更新自体は随時行なっているのですが、私はIE7は嫌いでなので、あえてIE6で使ってます。一度画面の指示のまま更新したらIE7になってしまいました。「早くIE7にしてくださいよ」との更新が毎日出てくるのだと思います。 私はPCは素人ですのでWINDOWSの設定は随時更新にはしておきたいのですがIE7化だけ回避するというような都合のいい設定等あるのでしょうか? 教えていただければ幸いです。

  • Windowsの自動更新をしているのに、シャットアウトごとに更新画面が

    Windowsの自動更新をしているのに、シャットアウトごとに更新画面が表示され更新がされています。Cドライブの空き容量700MBであること、Windowsが68GBあることに関係しているのでしょうか。

  • 「Windowsプログラミング」について

    よく本屋さんで「Windowsプログラミング」というのを見かけますが 言語は何なのでしょうか?VBとかC++なのでしょうか? プログラミング言語として「Windows」と言うのがあるわけではないですよね? 他のプログラミング言語を使用してWindowsを操作することを 「Windowsプログラミング」いうのでしょうか? アドバイス宜しくお願い致します。

  • Windows8.1への更新強制画面からの回避は?

    Windows8.1への更新強制画面からの 回避方法を大至急教えてください。

  • チャットでの画面更新

    チャットを行っていて毎回画面更新しないと新しい発言が表示されないのですが、これはIEの設定で回避でみますでしょうか。

  • Windowsプログラミングについて

    C、C++、Java、JavaScriptは6年やってますので多少できます。それでWindowsプログラミングに挑戦しようと、VisalC++6.0を勧められたのでやってみたらさっぱりわからなくて、何度も挫折しました。 色々フリーソフトを作りたいのですが、初心者向きのWindowsプログラミングの言語って何がお勧めですか?

  • Windowsの更新

    シャットダウンしようとすると、たまに『Windowsの更新をしています。電源を切らないでください。』と出るときがありますよね。 昨夜も寝る前にシャットダウンしようとしたらその画面が出たので、放置してそのまま寝たのですが6時間経っても『Windowsの更新をしています。電源を切らないでください。』の画面のままでした。 電源ボタン長押しで強制終了して電源を入れなおしましたが、原因は何でしょうか? シャットダウンするのが怖いのです。 OSはWindows7プロフェッショナルです。

  • windows10を更新したら…

    windows10を更新したら、スタート画面がおかしくなりました。 タイルやツールバーは、前に設定していた青なのですが、背景色が青から黒に変わってしまい、ネットで調べて色々やってみましたが、どうしても青に戻りません。 青に戻す方法を教えて下さい。 ※OKWAVEより補足:「NEC 121ware : Windows」についての質問です

  • Windowsを更新したら警告が出ました。

    起動した画面の右下でよくWindowsを更新しますか?というメッセージが出ていたので、更新をしました。すると更新を終えてから「Windowsセキュリティの緊急警告」という赤いマークが出て、クリックするとセキュリティセンターの画面が出てきて、ウイルス対策というジャンルにおいて、ファイルが見つからなかったという状態になっています。 何か改善の方法はあるのでしょうか? 教えていただけないでしょうか?