Previous: イベントの種類とイベント共用体
Up: イベントの種類とイベント共用体
Next: Exposeイベントとは?
Previous Page: イベントの種類とイベント共用体
Next Page: Exposeイベントとは?
イベント情報を格納したイベント構造体は、
どんな種類のイベントについても対応できるような
構造(メンバー)を持っていなければなりません。
イベントの種類によって、伝えられる情報が異なるからです。
たとえばマウスのイベントとキーボードのイベントでは、
内容が当然異なるはずです。
しかし、イベントの種類ごとに専用の構造体を用意するのは、
マシンの側から見ても、プログラムを書く側から見ても不便です。
そこで「イベント共用体」が登場します。
「共用体」とは何でしょうか? あるメモリー上の数値データが、
実体としては同じなのに、
あたかも違った構造を持つデータとしてアクセスできるのが
「共用体」の考え方です。
お弁当箱の「仕切り方」が、中身に応じて変わるのと同じことです。
ちょっと難しそうな感じもしますが、
これもまたプログラムを見やすくするための工夫の一つなのです。
イベントのタイプによってイベント構造体の内部構造(メンバー名)が
どう指定されるか、例を挙げておきましょう。
共用体として宣言したデータのメンバーを指定する方法は、
通常の構造体の場合と同じです。
見かけは構造体の内部に何個かの構造体が含まれているようになります。
eve.xbutton.button /* ButtonPressイベントのマウスボタンの番号のデータ */eve.xany.window /* どのイベントでもウィンドウ ID の データ */
詳しくは教科書の p. を見てください。