Win32API

Win32APIはWindowsを動かすための32bitのApplication Programming Interface (API)です。 Windows上で動作するプログラムを作成するにはWin32APIを使うことが一般的です(裏で動いているため意識することはないかもしれませんが)。 Win32APIをVisucal C++でプログラムしたサンプルを以下に示します。

Hello World
あらゆるプログラム言語はHello Worldから始まるそうです。
以下のように打ち込みました。
Source1.cpp
やっていることは です。ビルドしました。
task1.exe
Hello World!と表示されます。

画面を640x480に
ChangeDisplaySettingsという関数を使ってプログラム起動時に画面を640x480に変更します。
Source2.cpp
ビルドしました。
task2.exe
640x480の画面になっています。

windowのタイトル・枠を消去する
全画面表示できるようにします。 するとWindowを閉じる×ボタンもなくなってしまいます。 そこでESCAPEキーを押すことでWindowを閉じることができるようにしました。
Source3.cpp
task3.exe
タイトルと枠が消えました。

背景黒に白い文字を表示
背景色を黒にして、白い文字を表示させます。
Source4.cpp
task4.exe
文字のfont、大きさが指定できました。 プログラムの見通しがよくなるようVM_PAINTの内容をhns_DrawTextの関数にまとめています。

500ミリ秒毎表示文字の色を変える
ミリ秒レベルの制御を行うためWindowsでは御法度の無限ループを使います。 無限ループは 比治山大学現代文化学部社会臨床心理学科 吉田弘司先生のホームページ に教えていただきました。
Source5.cpp
task5.exe
RETURNキーで開始、ESCAPEキーで終了です。 先ほど作成したhnsDrawText関数の内容を変えています。

GIVEIOを使ってパラレルポートからトリガー信号出力
GIVEIO.sysを使います。Windows98/MEでは不要です。
Source6.cpp
task6.exe
壊れかけたネオンみたいになってしまいました。

背景をランダムドットで連続表示
背景を時間変化するランダムドット、文字部分を時間変化しないランダムドットにしました。
Source7.cpp
task7.exe
一時期はやったランダムドットのステレオ画像みたいで、すぐには何が書かれているかわかりません。

WAVファイル再生
がらっと変わってWAVファイルを再生してみます。
Source8.cpp
標準刺激standard.wav
逸脱刺激deviant.wav
task8.exe
逸脱刺激後は強制的に標準刺激になるようにしています。 標準刺激:逸脱刺激は85:15です。 PlaySound関数の3番目の引数にSND_ASYNCを使うと、ズレガ生じるそうなのでトリガー出力後にWAVファイルを再生しています。