今度は、イベントについて書きます。 イベントというのは、ほかのアプリケーションと会話(会話っていうのは大げさかな?)するためのものです。イベントを使えば、他のアプリケーションを裏で実行させながら、自分の作ったプログラムを走らせることができるようになります。 普通の売ってたりするソフトはイベントを使ってるはずです。 イベントの流れとしては、まず、一定時間ごとにイベントという、システム側から送りつけられるものを読みとって、そのイベントを判断して、システム側に処理を渡すという感じです。 実際のソースコードとしては、 Boolean gDone = false; void EventLoop( void ) { EventRecord* event; char theChar; event = (EventRecord*)NewPtr( sizeof( EventRecord ) ); //ここで、eventのメモリの確保をしている。 while( !gDone ) { WaitNextEvent( everyEvent, event, 20L, NULL ); switch( event->what ) { case mouseDown: //クリック処理 break; case keyDown: case autoKey: //押されたキー判定 break; case updateEvt: //ほかのウインドウをクリックしたり、 //ほかのウインドウから自分のウイン //ドウにアクティブなウインドウが変 //わったときの処理 break; } } }みたいな骨組みになります。 ちなみにこのループはグローバル変数gDoneがどこかでtrueになったら終わります。trueになるべき場所は、FileメニューからQuitを選んだときか、コマンドキー(前々回で説明)とQを同時に押したときです。それ以外に終わられるとユーザは混乱するのでやめましょう。 それぞれの処理はまた次回で。 |