Entering Passive Mode

カテゴリ 'C++/CLI' の記事
< 1 2 3 4 >

関数の実装

今日は、必須の関数の実装を行う。

scrnsave.lib を使う場合、
以下の関数を用意する必要がある。

・RegisterDialogClasses
・ScreenSaverConfigureDialog
・ScreenSaverProc

ScreenSaverProc はプレビューと実行モードの時に使われる。

リソースの作成

今日は、必要なリソースを作成しよう。

scrnsave.lib を使う場合、
以下のリソースが必要である。

・ID が IDS_DESCRIPTION (1) の文字列
・ID が ID_APP (100) のアイコン
・ID が DLG_SCRNSAVECONFIGURE (1002) のダイアログ

Windows でリソースを作る場合、
まず、リソーススクリプト (*.rc) を作成する。

scrnsave.lib の使い方

scrnsave.lib を使ってスクリーンセーバーを作る場合、
C 言語を使った開発となるため、以下の用意が必要である。

・scrnsave.lib (Platform SDK 等)
・Microsoft 製の C コンパイラ(Visual C++ 等)

Express 版以外の Visual C++ があれば、
それだけで開発環境が十分に揃う。
Platform SDK のインストールは多分不要だが、
最新版のライブラリを使いたいなら入れておけば良い。

スクリーンセーバーの実装手順

スクリーンセーバーを作るためには、
大体以下のような流れで処理を書く必要がある。

・規定のコマンド引数を処理

・設定モード (/C) 時
  ・設定ダイアログを表示

・プレビューモード (/P) 時
  ・プレビュー用小ウィンドウを作成
  ・スクリーンセーバーの絵を描画

スクリーンセーバーのコマンドライン

スクリーンセーバー

スクリーンセーバーが普通の EXE と異なる点は、
コマンドライン引数の意味が厳密に決められていることだ。

スクリーンセーバーはシステムによって起動され、
その際に行うべき処理が、コマンドライン引数で示される。
コントロールパネルの画面から呼び出される事が多い。

そのため、スクリーンセーバーは、
以下の引数を処理しなければならない。

(大小文字は区別しない。####### は任意桁の 10 進文字列)

スクリーンセーバーの実体

Windows におけるスクリーンセーバーは、
コントロールパネルの画面の設定で変更できる。
この画面では、スクリーンセーバーの設定や、デモ表示、
そしてプレビュー実行などが可能となっている。

スクリーンセーバーの実体は、Windows ディレクトリや、
System(32) ディレクトリにある、拡張子 SCR のファイルだ。
拡張子は SCR だが、その中身は普通の EXE と変わらない。

設定された時間の利用者の操作がない場合や、
コントロールパネルの画面で操作を行った場合、
システムによってスクリーンセーバーが起動される。
その際、処理内容はコマンドライン引数として示される。

スクリーンセーバーとディスプレイ

まだ本調子ではないので、ライトなネタからやっていこう。
今回取り上げるのは、スクリーンセーバーだ。

スクリーンセーバーの役割は、その名前が示すとおり、
「画面」を「保護」するためにある。

この「画面」は、当初は表示装置そのものを表していた。
つまりは、表示用のディスプレイである。

最近のパソコンの表示装置には液晶ディスプレイが主流だが、
一昔前は、ブラウン管(CRT)のディスプレイが主流であった。
CRT ディスプレイは、その構造上、
同じパターン(特に明るい画素)を長時間表示していると、
蛍光体の焼きつきが発生し、寿命を縮める原因となる。

< 1 2 3 4 >
このページのトップへ戻る
© 2008 Project Loafer/Project Fireball and all blog writers. Powered by Nucleus CMS