- 締切済み
WIndows3.1 ウィンドウの描画
Windows3.1では、ウィンドウの再描画を行う時、再描画を行う範囲を指定することは出来るのでしょうか? 例えば、リストボックスにデータを追加表示し、再描画の処理を行う時に、(リストボックスを含むウィンドウ全体ではなく、)リストボックスのみを再描画することは可能でしょうか? WindowsNTでは、指定範囲の再描画を行う事はできると思うのですが。 以上、よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- kaoaru
- ベストアンサー率33% (42/127)
かなり古い質問です。質問した方が閉じてないだけかと思いますが、答えておきます。 >WindowsNTでは、指定範囲の再描画を行う事はできると思うのですが。 何もWindowsNTに限ったことではありません。Windows自体、メッセージループは共通に存在し、そのメッセージ内容に応じて処理しているのはすべての版で共通です。 メッセージをクラッキングした結果、「WM_PAINT」を受け取ったらそのタイミングで再描画をするだけのことで、該当ハンドルが所有するリストボックスの再描画処理をすればいいのです。 APIベースでのプログラミングをやったことがないと思われます。一度やってみればわかります。 言語処理系に何を使われているのかがわかりませんが、処理系付属のサンプルに「GenericWindow」とかがあればそれをベースに試してみたらどうでしょうか? ※Windowsはメッセージ駆動型のOSです。これの意味が実感できればしめたものです。
- itohh
- ベストアンサー率45% (210/459)
こんにちは。itohhといいます。 Win3.1時代の開発では、メッセージループを自分でガリガリとコーディングする方法ですよね。 ですから、リストボックスだけを再描画したいのであれば、リストボックスにWM_PAINTを PostMessageして、その部分だけを再描画。 こんな感じでしょうか? さすがに確認をする環境がありませんから、確認がとれないアドバイスになってしまいました。 ちなみにWin3.1の開発環境は、VC Ver1.5(16ビット)までしか対応していないと思います。