Google

東海大学理学部物理学科素粒子理論・安江研究室  

ホーム 最新情報 サイトマップ

初期設定

上へ 始まり 準備 登録 作成 初期設定 メッセージ処理 画面出現 画面描画 メッセージ送信機能 終了処理 登録抹消 詳細説明

【5】 画面が現れる前にいろいろ設定する

BOOL OnCreate(HWND hWnd, UINT Message, WPARAM wParam, LPARAM lParam)

これはどんな名前でも、いくつ引数を取ってもいいです。ここでは次に現れるメッセージ処理関数MainWndProcのとる引数を用いています。この4つはすべてシステムが決めてきます。 WM_CREATEメッセージが着きます。

  • hWnd:ウィンドウズハンドル(CreateWindow関数から返された値と同じです
  • Message:メッセージWM_CREATEという値を持っている:#define WM_CREATE 0x0001
  • wParam:システムから送ってくるデータでどんな値があるのかはWM_CREATのヘルプを参照使用せず
  • lParam:システムから送ってくるデータでどんな値があるのかはWM_CREATのヘルプを参照使用できます

いよいよウィンドウズ用プログラミングの開始です。ここまでは通常のCプログラミングとほぼ同じです。ここからウィンドウズ特有のメッセージ処理が始まります。CreateWindowによって、wndclass.lpfnWndProc = MainWndProc)で指定した関数(この例ではMainWndProc)にWM_CREATEが渡されます。そこでこれからMainWndProcでWM_CREATE を受け取ってそこでの処理に移ります。ここでは、その処理をする関数をBOOL OnCreate(HWND hWnd, UINT Message, WPARAM wParam, LPARAM lParam)とします。 CreateWindowで使ったパラメータがlParamにきます。取り出すときは「LPCREATESTRUCT lpCreateStruct = (LPCREATESTRUCT) lParam」で取り出せます。

OnCreate関数の例

使う自前カーソルやアイコンやビットマップや特殊な色など設定します。設定したものはだいたい終了時に破棄します。ここでタイマーなんかを設定してみます。終わるときにはKillTimer関数で終了処理をしますこの場合「100」にしてるので100ミリ秒ごとにWM_TIMERを発生します。

UINT idTimer;
BOOL OnCreate(HWND hWnd, UINT Message, WPARAM wParam, LPARAM lParam)
{
idTimer = 1;
if(!SetTimer(hWnd, idTimer, 100, (TIMERPROC)NULL)){
// タイマーが使えない
idTimer = 0;
}
return FALSE;
}
目次へ戻る

前へ ホーム 上へ 次へ

このWeb サイトではインターネットエクスプローラVer.3.0あるいはそれ以上が推奨です Internet Explorer
この Web サイト(since 1997年12月1日)に関する質問やコメントについては、Mail.gif (4196 バイト)安江 まで電子メールをお送りください。
Copyright © 1997-2022/10 東海大学理学部物理学科安江研究室 All rights reserved
最終更新日: 2022年10月14日
マイクロソフト Front Page98