まず、メニューバーのファイル(F)、新規作成(N)...を選択します。 そして、プロジェクトワークスペースをクリックします。 そうすると、新規ワークスペースプロジェクトのダイアログ・ボックスが 出てきます。タイプは、Applicationを選択します。 プロジェクトワークスペース名(N)に適当な名前を付けます。 あとは、作成ボタンを押せば準備完了です。
次に、メニューバーからファイル(F)、新規作成(N)を選択し、
「テキストファイル」をクリックします。
ここまで、できたら次のように入力して下さい。
入力したら、ファイル(F)、名前を付けて保存(A)で保存して下さい。 次に、このソースファイルをプロジェクトに挿入します。 これは、メニューバーの挿入(I)、プロジェクトにファイルを追加(I)で 行います。 次に、ビルドボタンを押せばプログラムが完成します。 できたプログラムを実行するには、ビルド(B)、実行(X)とやって下さい。#include <windows.h> int WINAPI WinMain( HANDLE hInstance , HANDLE hPrevInstance , LPSTR lpCmdLine , int nCmdShow ) { MessageBox(NULL, (LPCSTR)"メッセージ・ボックスのテストです。", (LPCSTR)"猫でもわかるプログラミング", MB_OK); return 0; }
少し、このプログラムについて解説します。 WindowsのプログラムではWinMain関数を使います。 この関数の前についているWINAPIとか、引数の型名らしい HANDLEなどについては今は、無視して下さい。 MessageBox関数については、ヘルプに
と書いてあります。最初の引数はオーナー・ウィンドウの ハンドルですがウィンドウを作っていないのでNULLです。 2番目の引数はメッセージボックスに書きこまれる テキストのアドレスです。要するにダブルクォーテーションで 囲まれた文字列です。3番目はタイトルです。 4番目は、メッセージボックスについている ボタンの種類を指定します。MB_OKなら「OK」ボタンが つきます。MB_OKCANCELなら「OK」と「CANCEL」ボタンが付きます。 この関数の戻り値によりどのボタンが押されたかを知ることができます。 IDOKなら「OK」ボタン、IDCANCELなら「CANCEL」ボタンという具合です。int MessageBox( HWND hWnd, // handle of owner window LPCTSTR lpText, // address of text in message box LPCTSTR lpCaption, // address of title of message box UINT uType // style of message box );
プログラムを実行すると左のようなメッセージボックスが
現れます。OKボタンを押すと終了します。
ただこれだけのプログラムですが立派な32ビット
ウィンドウズ・プログラムです。
細かいことは、あとからゆっくりするとして この程度なら何となくプログラムが書けそうですね。 メッセージ・ボックスだけを使ってもう少し 複雑なこともできます。
現在時刻の取得はC言語編第55章などでやっているので もうわかりますね。メッセージボックスに「OK」と「CANCEL」の2つの ボタンを表示して「OK」ボタンを押すと新しい時刻を表示します。 「CANCEL」ボタンを押すと終了します。 ソースファイルを眺めているとsprintf関数の使い方は何となくわかりますね。 printfから類推できますね。#include <windows.h> #include <time.h> #include <stdio.h> int WINAPI WinMain( HANDLE hInstance , HANDLE hPrevInstance , LPSTR lpCmdLine , int nCmdShow ) { int hr, mn, sec, ret; char str[256]; char *str_org = "ただいま%3d時%3d分%3d秒です"; struct tm *mytime; time_t long_time; while(1) { time(&long_time); mytime = localtime(&long_time); hr = mytime->tm_hour; mn = mytime->tm_min; sec = mytime->tm_sec; sprintf(str, str_org, hr, mn, sec); ret = MessageBox(NULL, (LPCSTR)str, (LPCSTR)"猫でもわかるプログラミング", MB_OKCANCEL); if (ret == IDCANCEL) break; } return 0; }
キャンセルボタンを付けると右上のバッテンマークの色が濃くなって
このボタンを押すことが出きるようになりました。キャンセル
ボタンを押す代わりにこのバッテンマークをクリックしても
同じ動作をします。
さて、今回はWindowsプログラミングのほんのさわりを やってみました。これでわかったことは、
Update Mar/07/1997 By Y.Kumei