Download presentation
Presentation is loading. Please wait.
Published byみりあ てっちがわら Modified 約 7 年前
1
2001年11月更新 2章 Windowプログラムの構成 Windowsプログラムおよび PiasTkプログラムの基本構造
2
Windowプログラムの基本構造 《 Windowsプログラミング 》 《 従来の手続き型プログラミング 》 イベント駆動型
イベント駆動型 《 従来の手続き型プログラミング 》 Windows OS viod main( ) { int i; : func1( ); i = func2( ) } いろいろなイベント <メニューが選ばれた> void func1( ) { } イベントの 切り分け void func1( ) { } <タイマーがタイムアウトになった> int func2( ) { PostMessage(...) } : int func2( ) { } int func3( ) { } <ボタンが押された>
3
※SysDevプログラムの構造について PiasApp PiasSysdev Piasgl.h Piastk.h Piasapp.h
グラフィックライブラリ関数の プロトタイプ宣言 Piastk.h Piastk関数のプロトタイプ宣言 Piasapp.h PiasSysdev #include イベントハンドラ関数群は 別のファイルにまとめて記述する イベントハンドラ関数群の定義ファイル アプリケーションの定数定義 #include PiasApp InitApplication, InitInstance, Run イベント駆動プログラムの基本的な関数群 いろいろな イベント・メッセージ MainWndProc( ) イベント・メッセージの切り分けと対応する手続きを実行する. 通常,イベントハンドラ関数を呼び出す. 呼び出されるイベントハンドラ 関数群の定義
4
操作イベントの発生とリソースID WM_COMMAND + リソースID 選ばれるとイベントメッセージとしてユーザプログラムに送られる.
IDC_START 選ばれるとイベントメッセージとしてユーザプログラムに送られる. そのとき何が選ばれたかを識別するには,それぞれオブジェクトに名前 (リソースID)を付けておく必要がある
5
タイマーイベントとは タイムアウト毎にGL_TIMER関数(hWnd,wParam)を呼び出し 少し動かした画面を作成し,描画する.
SetTimer(hwnd,1, 100, . ) KillTimer(hWnd,1) TimerID=1 時間の流れ=> タイムアウト間隔=100msec SetTimer(hwnd,2, 200, . ) KillTimer(hWnd,2) TimerID=2 時間の流れ=> タイムアウト間隔=200msec WM-TIMER + TimerID のイベントメッセージがWindowsから送られてくる タイムアウト毎にGL_TIMER関数(hWnd,wParam)を呼び出し 少し動かした画面を作成し,描画する. =タイムアウトしたTimerID (注1) タイマー毎に処理が異なることに注意。 (注2) Piastkrmの方で, TimerIDが格納されて渡されるwParamの値によって 呼び出すイベントハンドラ関数を切り分けてもよい
Similar presentations
© 2024 slidesplayer.net Inc.
All rights reserved.