Palm Programmer's Laboratory

トップ 差分 一覧 ソース 検索 ヘルプ RSS ログイン

Palm OS Programmer's API Reference/2

← 1 章に戻る ↑トップへ 3 章に進む →

2 Palm OS イベント

システムは、グラフィカル ユーザ インターフェイスでユーザと相互作用するときに、Palm OS イベント(ヘッダファイル Event.h, SysEvent.h, INetMgr.h で定義されています。)をアプリケーションに送信します。Palm OS Programmer's Companion, vol. I の 3 章 「イベント ループ」 でイベントがどのような働きをするのか詳しく説明します。この章では、それぞれのイベントについてのリファレンス情報を提供します。まず最初に Palm OS イベントで使用される型(Type)を示します。次にそれぞれのイベントについてアルファベット順に説明していきます。
イベント UI Object
appStopEvent N.A.
ctlEnterEvent, ctlExitEvent, ctlRepeatEvent, ctlSelectEvent Control
daySelectEvent N.A.
fldChangedEvent, fldEnterEvent, fldHeightChangedEvent Field
frmCloseEvent, frmGotoEvent, frmLoadEvent, frmOpenEvent, frmSaveEvent, frmUpdateEvent, frmTitleEnterEvent, frmTitleSelectEvent Form
frmObjectFocusLostEvent, frmObjectFocusTakeEvent Form object.
frmGadgetEnterEvent, frmGadgetMiscEvent Extended gadget
inetSockReadyEvent, inetSockStatusChangeEvent N.A. (INetLib)
keyDownEvent, keyUpEvent N.A.
lstEnterEvent, lstExitEvent, lstSelectEvent List
menuEvent, menuOpenEvent, menuCloseEvent, menuCmdBarOpenEvent Menu
nilEvent N.A.
penDownEvent, penMoveEvent, penUpEvent N.A. (pen)
popSelectEvent Popup (Control)
sclEnterEvent, sclRepeatEvent, sclExitEvent Scroll bar
tblEnterEvent, tblExitEvent, tblSelectEvent Table
winDisplayChangedEvent, winEnterEvent, winExitEvent Window

イベント データ構造体 ^TOP^

eventsEnum ^TOP^

目的

eventsEnum 列挙型は可能なイベント タイプを指定します。

Prototype

typedef enum {
	nilEvent = 0,
	penDownEvent,
	penUpEvent,
	penMoveEvent,
	keyDownEvent,
	winEnterEvent,
	winExitEvent,
	ctlEnterEvent,
	ctlExitEvent,
	ctlSelectEvent,
	ctlRepeatEvent,
	lstEnterEvent,
	lstSelectEvent,
	lstExitEvent,
	popSelectEvent,
	fldEnterEvent,
	fldHeightChangedEvent,
	fldChangedEvent,
	tblEnterEvent,
	tblSelectEvent,
	daySelectEvent,
	menuEvent,
	appStopEvent = 22,
	frmLoadEvent,
	frmOpenEvent,
	frmGotoEvent,
	frmUpdateEvent,
	frmSaveEvent,
	frmCloseEvent,
	frmTitleEnterEvent,
	frmTitleSelectEvent,
	tblExitEvent,
	sclEnterEvent,
	sclExitEvent,
	sclRepeatEvent,
	tsmFepModeEvent,
	
	attnIndicatorEnterEvent,
	attnIndicatorSelectEvent,
	
	menuCmdBarOpenEvent = 0x0800,
	menuOpenEvent,
	menuCloseEvent,
	frmGadgetEnterEvent,
	frmGadgetMiscEvent,
	
	firstINetLibEvent = 0x1000,
	firstWebLibEvent = 0x1100,
	
	keyUpEvent = 0x4000,
	keyHoldEvent = 0x4001,
	frmObjectFocusTakeEvent = 0x4002,
	frmObjectFocusLostEvent = 0x4003,
	
	firstUserEvent = 0x6000,
	lastUserEvent  = 0x7FFF
} eventsEnum;

以下では、これらのイベント タイプについてアルファベット順で説明していきます。

EventType 構造体 ^TOP^

目的

EventType 構造体はシステム イベントに関係するすべてのデータを含んでいます。すべてのイベント データはいくつかの共通のデータを持っています。また、ほとんどのイベントはイベントを特定するためのデータを持っています。特定のデータはEventType データ構造体の一部である共用体(union)を使用します。特定のデータの共用体(union)は最大 16 バイトです。

共通データについては、以下の構造体で説明します。イベント リファレンス セクションでは、イベントの各タイプに関連する重要なデータについて詳しく説明します。

Prototype

typedef struct {
	eventsEnum eType;
	Boolean penDown;
	UInt8 tapCount;
	Int16 screenX;
	Int16 screenY;
	union{
		...
	} data;
} EventType;

フィールド

  • eType
    • eventsEnum の定数の1つです。イベントのタイプを特定します。
  • penDonw
    • イベントが生じたときに、ペンがパネルに接触していればtrue です。そうでなければfalse です。
  • tapCount
    • タップの回数です。この値は主にフィールドで使用されます。ユーザがテキスト フィールドでタップしたとき、2 回のタップなら 1 文字が選択され、3 回のタップなら 行全体が選択されます。
  • screenX
    • ペンがウィンドウに触れた場所をピクセルで示します。(ピクセルはウィンドウの左端から数えます。)
  • screenY
    • ペンがウィンドウに触れた場所をピクセルで示します。(ピクセルはウィンドウの上端から数えます。)
  • data
    • もしイベントが data を持つ場合のデータです。このデータは共用体で、正確な内容は eType フィールドに依存します。この章の イベント リファレンスセクションでは、それぞれのイベントの data フィードが何を含んでいるのか説明します。

NOTE: data フィールドは、EventType の識別しにアクセスするためのパスの一部だということを覚えておいてください。例えば、ctlEnterEventcontrolID にアクセスするためのコードは以下のようになります。

EventType *event;
//...
if (event->data.ctlEnter.controlID ==
	MyAppLockButton)
}}

互換性

3.5 New Feature Set が存在する場合、tapCount フィールドのみが定義されます。そのため、Palm OS 3.5 以降では、新しいイベントをキューに追加する前にイベント構造体をクリアしておくことが特に重要です。クリアしておかなければ、新しいイベントの tapCount の値は正確でない可能性があります。

EventPtr Typedef ^TOP^

目的

EventPtrEventType へのポインタを定義します。

Prototype

typedef EventType *EventPtr;

イベント リファレンス ^TOP^

appStopEvent ^TOP^

システムが現在実行されているアプリケーションとは別のアプリケーションを開始する場合、イベント マネージャは、現在実行されているアプリケーションを止めるために、このイベントを発します。これにより、アプリケーションはイベント ループから外れ、すべてのファイル、フォームを閉じて、停止しなければなりません。

このイベントでアプリケーションが停止しない場合は、システムは新たなアプリケーションを開始することができません。

attnIndicatorEnterEvent ^TOP^

目的

FrmHandleEvent() 関数が Attention インディケータの領域内で penDownEvent を受け取ったときに、FrmHandleEvent() 関数はこのイベントを発します。

このイベントにより、data フィールドは以下の構造体を持ちます。

Prototype

struct attnIndicatorEnter {
	UInt16 formID;
} attnIndicatorEnter;

フィールド

  • formID
    • 開発者が定義したフォームのID

互換性

このイベントは、5.0 New Feature Set が存在する場合にのみサポートされます。

attnIndicatorSelectEvent ^TOP^

目的

FrmHandleEvent() コントロール関数がこのイベントを発します。FrmHandleEvent() は、 attnIndicatorEnterEvent を受け取ると、ペンが上がるまでペンを追跡します。Attention インディケータ領域内でペンが持ち上がると、attnIndicatorSelectEvent がイベント キューに追加されます。

このイベントにより、data フィールドは以下の構造体を持ちます。

Prototype

struct attnIndicatorSelect {
	UInt16 formID;
} attnIndicatorSelect;

フィールド

  • formID
    • 開発者が定義したフォームのID

互換性

このイベントは、5.0 New Feature Set が存在する場合にのみサポートされます。

ctlEnterEvent ^TOP^

目的

CtlHandleEvent() コントロール ルーチンは、 コントロール領域内で penDownEvent を受け取ると、このイベントを発します。

このイベントにより、data フィールドは以下の構造体を持ちます。

Prototype

struct ctlEnter {
	UInt16 controlID;
	struct ControlType *pControl;
} ctlEnter;

フィールド

  • controlID
    • 開発者が定義したコントロールのID
  • pCcontrol
    • コントロール構造体へのポインタ(ControlType

ctlExitEvent ^TOP^

目的

CtlHandleEvent() コントロール ルーチンがこのイベントを発します。CtlHandleEventは、ctlEnterEvent を受け取ると、ディスプレイからペンが持ち上がるまでペンを追跡します。ペンがコントロール領域内で持ち上がると、ctlSelectEvent がイベント キューに追加されます。ペンがコントロール領域外で持ち上がる(に出る?)と、ctlExitEvent がイベント キューに追加されます。EventType 構造体の penDown, screenX, screenY フィールドは適切に ctlExitEvent に設定されます。また、data フィールドは以下の構造体を含みます。

Prototype

struct ctlExit {
	UInt16 controlID;
	struct ControlType *pControl;
} ctlExit;

フィールド

  • controlID
    • 開発者が定義したコントロールのID
  • pCcontrol
    • コントロール構造体へのポインタ(ControlType

ctlRepeatEvent ^TOP^

目的

CtlHandleEvent() コントロール ルーチンがこのイベントを発します。CtlHandleEventは、リピート ボタン(tREP)またはフィードバック スライダ コントロール(tslf)内で ctlEnterEvent を受け取ると、ctlRepeatEvent を発します。ペンがコントロール領域内に 0.5 秒以上接している場合、CtlHandleEventは、リピート ボタン(tREP)内で ctlRepeatEvent を受け取ると、別の ctlRepeatEvent を発します。

CtlHandleEventは、フィードバック スライダ コントロール内で ctlReapetEvent を受け取ると、スライダが少なくとも 1 ピクセル動くたびに ctlRepeatEvent を発します。リピート ボタンと違い、フィードバック スライダは、定期的に ctlRepeatEvent を発することはありません。

ctlRepeatEventtrue を返すと、ctlRepeatEvent ループは停止します。それ以上 ctlRepeatEvent は発せられません。

このイベントにより、data フィールドは以下の構造体を含みます。

Prototype

struct ctlRepeat {
UInt16 controlID;
	struct ControlType *pControl;
	UInt32 time;
	UInt16 value;
} ctlRepeat;

フィールド

  • controlID
    • 開発者が定義したコントロールのID
  • pCcontrol
    • コントロール構造体へのポインタ(ControlType
  • time
    • このイベントがキューに追加されると、システム チェックがカウントされます。
  • value
    • コントロールがフィードバック スライダの場合の現在値

互換性

value は、5.0 New Feature Set が存在する場合にのみ存在します。

daySelectEvent ^TOP^

目的

日にち選択オブジェクトをハンドルするシステム内の DayHandleEvent() ルーチンがこのイベントをハンドルします。日にち選択オブジェクトが月を表示しているとき、ユーザはタップで日にちを選択できます。

このイベントにより、data フィールドは以下の構造体を含みます。

Prototype

struct daySelect {
	struct DaySelectorType *pSelector;
	Int16 selection;
	Boolean useThisDate;
	UInt8 reserved1;
} daySelect;

フィールド

  • pSelector
    • 日にち選択構造体(DaySelectorType)へのポインタ
  • selection
    • 使用されません。
  • useThisDate
    • 選択された日付を自動的に使用する場合は true にセットします。
  • reserved1
    • 使用されません。

ctlSelectEvent ^TOP^

目的

CtlHandleEvent() コントロール ルーチンがこのイベントを発します。CtlHandleEventは、ctlEnterEvent を受け取ると、ペンが持ち上がるまでペンを追跡します。ペンが落ちたコントロール内でペンが持ち上がると、cltSelectEvent がイベント キューに追加され、それ以外の場所でペンが持ち上がる(にペンが出る?)と、ctlExitEvent がイベント キューに追加されます。

通常、イベント ハンドラが true を返しても、false を返しても問題にはなりません。なぜなら、オペレーティング システムはこのイベントをハンドルしていないからです。ポップアップ トリガのデフォルトのイベント ハンドラはこのイベントをハンドルしませんが、リストが実際に表示されるため、このインスタンスには false を返さなくてはなりません。

このイベントにより、data フィールドは以下の構造体を含みます。

Prototype

struct ctlSelect {
	UInt16 controlID;
	struct ControlType *pControl;
	Boolean on;
	UInt8 reserved1;
	UInt16 value;
} ctlSelect;

フィールド

  • controlID
    • 開発者が定義したコントロールのID
  • pCcontrol
    • コントロール構造体へのポインタ(ControlType
  • on
    • コントロールが機能していないときは trueです。そうでなければ false です。
  • reserved1
    • 使用されません。
  • value
    • コントロールがスライダの場合の現在値

互換性

value は、5.0 New Feature Set が存在する場合にのみ存在します。

fldChangedEvent ^TOP^

目的

FldHandleEvent() フィールド ルーチンは、フィールドが持つテキストがスクロールする、あるいはスクロールされたときに、このイベントを発します。このイベントは、スクロールを起こすフィールド コードのすべての呼び出しから引き起こすことができます。たいていの場合、このイベントは FldHandleEvent から引き起こされます。

FldHandleEventfldEnterEvent を受け取ると、挿入ポイントを配置し、ペンが持ち上がるまでペンを追跡します。テキストはペンがドラッグされるのに合わせて適切に選択(ハイライト)されます。

このイベントにより、data フィールドは以下の構造体を含みます。

Prototype

struct fldChanged {
	UInt16 fieldID;
	struct FieldType *pField;
} fldChanged;

フィールド

  • fieldID
    • 開発者が定義したフィールドのID
  • pField
    • フィールド構造体 FieldType へのポインタ

fldEnterEvent ^TOP^

目的

FldHandleEvent() フィールド ルーチンは、フィールド領域内で penDownEvent を受け取ると、このイベントを発します。

このイベントにより、data フィールドは以下の構造体を含みます。

Prototype

struct fldEnter {
	UInt16 fieldID;
	struct FieldType *pField;
} fldEnter;

フィールド

  • fieldID
    • 開発者が定義したフィールドのID
  • pField
    • フィールド構造体 FieldType へのポインタ

fldHeightChangedEvent ^TOP^

目的

FldHandleEvent() を含むいくつかのフィールド ルーチンは、フィールドの行数が変更されたときに、このイベントを発します。これらの関数は、アプリケーションにフィールドの高さを変更する必要があることを通知するために、fldHeightChangedEvent を発します。

フィールドがテーブル上にある場合、テーブルのコードが fldHeightChangedEvent をハンドルします。フィールドが直接フォームの上にある場合、アプリケーション コード自体が fldHeightChangedEvent をハンドルしなくてはなりません。フォーム コードはこのイベントをハンドルしません。

このイベントにより、data フィールドは以下の構造体を含みます。

Prototype

struct fldHeightChanged {
	UInt16 fieldID;
	struct FieldType *pField;
	Int16 newHeight;
	UInt16 currentPos;
} fldHeightChanged;

フィールド

  • fieldID
    • 開発者が定義したフィールドのID
  • pField
    • フィールド構造体 FieldType へのポインタ
  • newHeight
    • 更新されたフィールドの高さ。(行数で表します。)
  • currentPos
    • 挿入ポイントの現在地

frmCloseEvent ^TOP^

目的

FrmGotoEvent()FrmCloseAllForms() フォーム ルーチンがこのイベントを発します。FrmGotoForm は現在のアクティブ フォームに frmCloseEvent を発します。FrmCloseAllForms はメモリにロードされたすべてのフォームに frmCloseEvent を発します。アプリケーションがこのイベントを阻止しなければ、FrmHandleEvent() ルーチンは特定のフォームを消去し、そのフォームに割り当てられていたメモリを開放します。

このイベントにより、data フィールドは以下の構造体を含みます。

Prototype

struct frmClose {
	UInt16 formID;
} frmClose;

フィールド

  • formID
    • 開発者が定義したフォームのID

frmGadgetEnterEvent ^TOP^

目的

FrmHandleEvent() は、拡張ガゼットの領域内に penDownEvent があるとき、このイベントを発します。ガゼット ハンドル関数(FormGadgetHandlerType() を参照してください)がこのイベントをハンドルしなくてはなりません。

このイベントにより、data フィールドは以下の構造体を含みます。

Prototype

struct gadgetEnter {
	UInt16 gadgetID;
	struct FormGadgetType *gadgetP;
} gadgetEnter;

フィールド

  • gadgetID
    • 開発者が定義したガゼットのID
  • gadgetP
    • このガゼットを表示している FormGadgetType オブジェクトへのポインタ

互換性

value は、5.0 New Feature Set が存在する場合にのみ実装されます。

frmGadgetMiscEvent ^TOP^

目的

アプリケーションは、拡張ガゼットに情報を送る必要があるときに、このイベントを発するかもしれません。FrmHandleEvent() 関数が、拡張ガゼット ハンドラ関数(FormGadgetHandlerType() を参照してください)に frmGadgetMiscEvent 渡します。

このイベントにより、data フィールドは以下の構造体を含みます。

Prototype

struct gadgetMisc {
	UInt16 gadgetID;
	struct FormGadgetType *gadgetP;
	UInt16 selector;
	void *dataP;
} gadgetMisc;

フィールド

  • gadgetID
    • 開発者が定義したガゼットのID
  • gadgetP
    • このガゼットを表示している FormGadgetType オブジェクトへのポインタ
  • selector
    • ガゼット ハンドラ関数に渡すための必須の整数値
  • dataP
    • ガゼット ハンドラ関数に渡すための必須データへのポインタ

互換性

value は、5.0 New Feature Set が存在する場合にのみ実装されます。

frmGotoEvent ^TOP^

目的

アプリケーションは、sysAppLaunchCmdGoTo 開始コードを受け取ったとき、このイベントを発するかもしれません。ユーザがグローバル検索機能でレコードを選択したとき、sysAppLaunchCmdGoTo が生成されます。frmOpenEvent のように、frmGotoEvent はアプリケーションにフォームを初期化して描画するよう要求します。しかし、このイベントは、アプリケーションがフォームのマッチングの取れた文字列を表示し、ハイライトするように追加情報を提供するかもしれません。

アプリケーションはこのイベントをハンドルする責任があります。

このイベントにより、data フィールドは以下の構造体を含みます。

Prototype

struct frmGoto {
	UInt16 formID;
	UInt16 recordNum;
	UInt16 matchPos;
	UInt16 matchLen;
	UInt16 matchFieldNum;
	UInt32 matchCustom;
} frmGoto;

フィールド

  • formID
    • 開発者が定義したフォームのID
  • recordNum
    • 一致文字列を含むレコードのインデックス
  • matchPos
    • 一致した位置
  • matchLen
    • 一致文字列の長さ
  • matchFieldNum
    • 一致文字列が見つかったフィールドの番号
  • matchCustomNum
    • アプリケーション特有の情報。レコード内の一致文字列の場所を見つけるための追加情報を提供する必要がある場合に必要になるかもしれません。

frmLoadEvent ^TOP^

目的

FrmGotoForm(), FormPopupForm() フォーム ルーチンがこのイベントを発します。これはアプリケーションにフォームをメモリにロードするよう要求します。

アプリケーションはこのイベントをハンドルする責任があります。このイベントに対する責任があるため、アプリケーションは、通常、フォームを初期化し、それをアクティブにし、イベント ハンドラをセットします。

このイベントにより、data フィールドは以下の構造体を含みます。

Prototype

struct frmLoad {
	UInt16 formID;
} frmLoad;

フィールド

  • formID
    • 開発者が定義したフォームのID

frmObjectFocusLostEvent ^TOP^

目的

いくつかのデバイスでは、5-way ナビゲーション ボタンが、ナビゲーション フォーカスがフォームに移動するのに合わせて、このイベントを生成します。このイベントは、オブジェクトがフォーカスを失った後に発せられます。

このイベントにより、data フィールドは以下の構造体を含みます。

Prototype

struct frmObjectFocusLost{
	UInt16 formID;
	UInt16 objectID;
	UInt32 dispatchHint;
} frmObjectFocusLost;

フィールド

  • formID
    • 開発者が定義したフォームのID
  • objectID
    • タブ移動順にあるオブジェクトID
  • dispatchHint
    • システムのみが使用します。

コメント

このイベントが発せられたとき、システム内のフォーカス構造体はすでに更新されています。ですから、単にフォーカスを失ったオブジェクトの再描画が開始されます。

FrmHandleEvent() がこのイベントを受け取ると、このイベントに関連する UI オブジェクトの 型特有のハンドラを呼び出します。通常、型特有のハンドラは、通常状態では、このイベントに関連する UI オブジェクトを描画し、true を返します。

互換性

5-way ナビゲーション ボタンを持つ - Handspring Tero 600 Smartphone - などのデバイスがこのイベントを生成します。あるデバイスでこのイベントが生成されるかどうかを確認するには、ライセンスを受けた開発者用のドキュメントを参照してください。

frmObjectFocusTakeEvent ^TOP^

目的

いくつかのデバイスでは、5-way ナビゲーション ボタンが、ナビゲーション フォーカスがフォームに移動するのに合わせて、このイベントを生成します。このイベントは、オブジェクトがフォーカスを得るべきときに発せられます。

このイベントにより、data フィールドは以下の構造体を含みます。

Prototype

struct frmObjectFocusLost{
	UInt16 formID;
	UInt16 objectID;
	UInt32 dispatchHint;
} frmObjectFocusTake;

フィールド

  • formID
    • 開発者が定義したフォームのID
  • objectID
    • タブ移動順にあるオブジェクトID
  • dispatchHint
    • システムのみが使用します。

コメント

このイベントがハンドルされたとき、システム内のフォーカス構造体はすでに更新されています(このイベントが発せられたときではありません)。

FrmHandleEvent() がこのイベントを受け取ると、このイベントに関連する UI オブジェクトの 型特有のハンドラを呼び出します。型特有のハンドラは関連オブジェクトのために FrmSetFocus() を呼び出し、フォーカスされたオブジェクトを描画し、true を返さなくてはなりません。
FrmSetFocus() はシステム内のフォーカス構造体を更新してから、frmObjectFocusLostEvent を発します。

互換性

5-way ナビゲーション ボタンを持つ - Handspring Tero 600 Smartphone - などのデバイスがこのイベントを生成します。あるデバイスでこのイベントが生成されるかどうかを確認するには、ライセンスを受けた開発者用のドキュメントを参照してください。

frmOpenEvent ^TOP^

目的

FrmGotoForm(), FrmPopupForm() フォーム ルーチンがこのイベントを発します。これはアプリケーションにフォームを初期化して表示することを要求します。

アプリケーションはこのイベントをハンドルする責任があります。

このイベントにより、data フィールドは以下の構造体を含みます。

Prototype

struct frmOpen {
	UInt16 formID;
} frmOpen;

パラメータ

  • formID
    • 開発者が定義したフォームのID

frmSaveEvent ^TOP^

FrmSaveAllForms() フォーム ルーチンがこのイベントを発します。これはアプリケーションにフォームに格納されているすべてのデータを Save することを要求します。

アプリケーションはこのイベントをハンドルする責任があります。

このイベントに渡されるデータはありません。

frmTitleEnterEvent ^TOP^

目的

FrmHandleEvent() コントロール ルーチンは、フォームのタイトル領域内で penDownEvent を受け取ると、このイベントを発します。タイトルの文字部分だけがアクティブであり、タイトル バー全体ではないことに注意してください。

このイベントにより、data フィールドは以下の構造体を含みます。

Prototype

struct frmTitleEnter {
	UInt16 formID;
} frmTitleEnter;

フィールド

  • formID
    • 開発者が定義したフォームのID

frmTitleSelectEvent ^TOP^

目的

FrmHandleEvent() コントロール ルーチンがこのイベントを発します。FrmHandleEvent() を受け取り、ペンが持ち上げられるまでペンを追跡します。

このイベントにより、data フィールドは以下の構造体を含みます。

Prototype

struct frmTitleSelect {
	UInt16 formID;
} frmTitleSelect;

フィールド

  • formID
    • 開発者が定義したフォームのID

互換性

Palm OS Version 3.5 以降では、FrmHandleEvent()frmTitleSelectEvent に応答します。その応答は、フォームのメニューを表示するために vchrMenu キャラクタと共に keyDownEvent をキューに入れることです。

frmUpdateEvent ^TOP^

目的

FrmUpdateForm() フォーム ルーチン、またはいくつかの場合には、FrmEraseForm() が、消去されるフォームによって表示が崩れる領域を描き直す必要があるときに、このイベントを発します。

一般に、フォームによって表示が崩れる領域はフォーム ルーチンによって保存、再描画され、アプリケーションが介入することはありません。しかし、システムが少ないメモリで動作している場合、フォーム ルーチンは表示の崩れた領域を保存しないかもしれません。
そのような場合、アプリケーションは frmUpdateEvent をイベント キューに追加します。フォームはこのイベントを受け取り、updateCode の値を用いて領域を再描画します。

アプリケーションは、それ自身の updateCode を定義することができ、このイベントを他の(アプリケーションが持つ?)フォームの動作トリガとして使用します。通常、1つのフォームが変更されると、他のフォームに反映される必要があります。

このイベントにより、data フィールドは以下の構造体を含みます。

Prototype

struct frmTitleUpdate {
	UInt16 formID;
	UInt16 updateCode;
} frmUpdate;

フィールド

  • formID
    • 開発者が定義したフォームのID
  • updateCode
    • 更新要求により、FrmEraseForm はこのコードを frmRedrawUpdateCode にセットします。これはフォーム全体を再描画する必要があることを意味します。アプリケーション開発者は自身の updateCode を定義することができます。updateCodeFrmUpdateForm() へのパラメータとして渡されます。

inetSockReadyEvent ^TOP^

目的

このイベントは、インターネット ライブラリがソケットに INetLibSockRead() のために用意されたデータを持たせることを決定したときに、INetLibGetEvent()EventGetEvent ではありません)によってのみ返されます。

このイベントにより、data フィールドは以下の構造体を含みます。

Prototype

struct  {
	MemHandle sockH;
	UInt32 context;
	Boolean inputReady;
	Boolean outputReady;
} inetSockReady;

フィールド

  • sockH
    • このイベントが参照するソケットのソケット ハンドル
  • context
    • 使用されません。
  • inputReady
    • ソケットが INetLibSockRead() 呼び出し用のデータを保持していれば、true です。
  • outputReady
    • 使用されません。

penDown, screenX, screenY フィールドはインターネット ライブラリ イベントでは意味を持たず、無視されます。

互換性

Wireless Internet Feature Set が存在する場合にのみ実装されます。

inetSockStatusChangeEvent ^TOP^

目的

このイベントは、インターネット ライブラリがソケットに INetLibSockRead() のために用意されたデータを持たせることを決定したときに、INetLibGetEvent()EventGetEvent ではありません)によってのみ返されます。

このイベントにより、data フィールドは以下の構造体を含みます。

Prototype

struct  {
	MemHandle sockH;
	UInt32 context;
	UInt16 status;
	Err sockErr;
} inetSockStatusChange;

フィールド

  • sockH
    • このイベントが参照するソケットのソケット ハンドル
  • context
    • 使用されません。
  • status
    • ソケットの現在のステータス。これは INetStatusEnum 定数の1つです。
  • sockErr
    • もしあれば、最後の操作の失敗理由。現在のソケット エラーは INetLibSockStatus() を呼び出すことで消去できます。

penDown, screenX, screenY フィールドはインターネット ライブラリ イベントでは意味を持たず、無視されます。

互換性

Wireless Internet Feature Set が存在する場合にのみ実装されます。

keyDownEvent ^TOP^

目的

このイベントは、ユーザが Graffiti または Graffiti 2 の文字を入力した、ディスプレイ下のボタンの 1 つを押した、あるいはアイコン エリアのアイコンの 1 つ(例えば検索アイコン)をタップしたときに、システムによって発せられます。

このイベントにより、data フィールドは以下の構造体を含みます。data フィールドに格納された情報にアクセスするにはこのようにします。

wchar32_t = eventP->data.keyDown.chr;

Prototype

struct _KeyDownEventType {
	WChar chr;
	UInt16 keyCode;
	UInt16 modifiers;
};

フィールド

  • chr
    • 文字コード
  • keyCode
    • 使用されません。
  • modifiers
    • 0 または以下の値の 1 つあるいはいくつかをとります。
  • shiftKeyMask
    • Graffiti または Graffiti 2 がシフト モードに入っている。
  • capsLockMask
    • Graffiti が Cap シフト モードに入っている。(Graffiti 2 では Cap シフト モードはサポートされていません。)
  • numLockMask
    • Graffiti または Graffiti 2 が数値 シフト モードに入っている。
  • commandKeyMask
    • グリフがメニュー コマンド グリフまたは仮想キー コードであった。
  • optionKeyMask
    • 実装されていません。リザーブされています。
  • controlKeyMask
    • 実装されていません。リザーブされています。
  • autoRepeatKeyMask
    • 自動繰り返しによりイベントが生成された。
  • doubleTapKeyMask
    • 実装されていません。リザーブされています。
  • poweredOnKeyMask
    • ボタンが押されてシステムに電源が入った。
  • appEvtHookKeyMask
    • システムのみが使用します。
  • livEvtHookKeyMask
    • システムのみが使用します。
  • willSendKeyUpMask
    • ハードウェア キーからのみ発せられます。keyUpEvent が発せられるであろう、keyHoldEvent が発せられる可能性があるということを示します。

互換性

willSendKeyUpMask は 5-way ナビゲーション ボタンをサポートする - Handspring Treo 600 Smartphone など- デバイスにのみ適用されます。あるデバイスでこのバージョンの keyDownEvent が生成されるかどうかを確認するには、ライセンスを受けた開発者用のドキュメントを参照してください。


重要: Graffiti 2 Feature Set が存在するなら、アプリケーションは文字のキー押下イベントを受け取るかもしれません。これは、実際のところ、多画文字の一画目であることを意味します。より詳細な情報は Palm OS Programmer's Companion, vol. Iイベント翻訳: ペン ストロークをキー イベントへ を参照してください。


keyHoldEvent ^TOP^

目的

このイベントは、ユーザがデバイスのハード キーをホールドしたときに発せられます。

このイベントにより、data フィールドは以下の構造体を含みます。data フィールドに格納された情報にアクセスするにはこのようにします。

wchar32_t = eventP->data.keyHold.chr;

Prototype

struct _KeyHoldEventType {
	WChar chr;
	UInt16 keyCode;
	UInt16 modifiers;
};

フィールド

  • chr
    • キャラク タコード
  • keyCode
    • 使用されません。
  • modifiers
    • 0 または keyDownEventmodifiers 下にリストされたキー修飾語定数の 1 つあるいはいくつかをとります。

コメント

このイベントは、ハードウェア キーが 1 秒間ホールドされたときに発せられます。(1 秒というタイミングは Palm OS ライセンスを受けた人によって変更されるかもしれないということに注意してください。)

keyDownEvent と異なり、keyHoldEvent はハードウェア ボタンに対応するキャラクタ コードによってのみ発せられます。デバイスがハードウェア キーボードを持つならば、キーをホールドすることで keyDownEvent が発せられ、1 秒後に keyHoldEvent が発せられ、最終的には keyUpEvent が発せられます。ユーザがソフトウェア キーボードを使用しているのなら、アプリケーションは keyDownEvent のみを受け取ります。

キーを押下- ホールド するたびにただ 1 つの keyHoldEvent が発せられます。キーがホールドされていていても、1 秒ごとに keyHoldEvent が発せられるわけではありません。

keyHoldEvent はたいていの場合、キーを押下することによってのみ発せられます。例えば、キーが押下、ホールドされ、それからそのキーが開放される前に他のキーが 1 秒以内に押下されると、以下のことが起こります: 最初のキーでは keyHoldEvent は発せられません。しかし、2 番目のキーが 1 秒間ホールドされると keyHoldEvent が発せられます。keyUpEvent は 1 番目と 2 番目のキーのどちらでも開放された場合に発せられることに注意してください。

互換性

5-way ナビゲーション ボタンをサポートする - Handspring Treo 600 Smartphone など- デバイスがこのイベントを生成します。あるデバイスでこのイベントが生成されるかどうかを確認するには、ライセンスを受けた開発者用のドキュメントを参照してください。

参照

keyDownEvent, keyUpEvent

keyUpEvent ^TOP^

目的

このイベントは、ユーザがデバイスのハード キーを開放したときに発せられます。

このイベントにより、data フィールドは以下の構造体を含みます。data フィールドに格納された情報にアクセスするにはこのようにします。

wchar32_t = eventP->data.keyUp.chr;

Prototype

struct _KeyHoldEventType {
	WChar chr;
	UInt16 keyCode;
	UInt16 modifiers;
};

フィールド

  • chr
    • キャラクタ コード
  • keyCode
    • 使用されません。
  • modifiers
    • 0 または keyDownEventmodifiers 下にリストされたキー修飾語定数の 1 つあるいはいくつかをとります。

コメント

keyDownEvent とは異なり、keyUpEvent はハードウェア ボタンに対応するキャラクタによってのみ発せられます。デバイスがハードウェア キーボードを持つならば、キャラクタが入力されるたびにアプリケーションは keyDownEventkeyUpEvent を受け取ります。ユーザがソフトウェア キーボードを使用しているのなら、アプリケーションは keyDownEvent のみを受け取ります。

互換性

5-way ナビゲーション ボタンをサポートする - Handspring Treo 600 Smartphone など- デバイスがこのイベントを生成します。あるデバイスでこのイベントが生成されるかどうかを確認するには、ライセンスを受けた開発者用のドキュメントを参照してください。

lstEnterEvent ^TOP^

目的

LstHandleEvent() リスト ルーチンは、リスト オブジェクトの領域内で penDownEvent を受け取ると、このイベントを発します。

このイベントにより、data フィールドは以下の構造体を含みます。

Prototype

struct lstEnter {
	UInt16 listID;
	struct ListType *pList;
	Int16 selection;
} lstEnter;

フィールド

  • listID
    • 開発者が定義したリストのID
  • pList
    • ListType 構造体へのポインタ
  • selection
    • 使用されません。

lstExitEvent ^TOP^

目的

LstHandleEvent() リスト ルーチンがこのイベントを発します。LstHandeEvent は、lstEnterEvent を受け取ると、ペンが持ち上がるまでペンを追跡します。ペンがリスト領域内で持ち上がると、lstSelectEvent がイベント キューに追加されます。領域外に出てしまうと、lstExitEvent がイベント キューに追加されます。

このイベントにより、data フィールドは以下の構造体を含みます。

Prototype

struct lstExit {
	UInt16 listID;
	struct ListType *pList;
} lstExit;

フィールド

  • listID
    • 開発者が定義したリストのID
  • pList
    • ListType 構造体へのポインタ

lstSelectEvent ^TOP^

目的

LstHandleEvent() リスト ルーチンがこのイベントを発します。LstHandeEvent は、lstEnterEvent を受け取ると、ペンが持ち上がるまでペンを追跡します。ペンがリスト領域内で持ち上がると、lstSelectEvent がイベント キューに追加されます。領域外に出てしまうと、lstExitEvent がイベント キューに追加されます。

ポップアップ リストは lstSelectEvent を生成しないことに注意してください。そのかわり、ポップアップ リストは popSelectEvent を生成します。

このイベントにより、data フィールドは以下の構造体を含みます。

Prototype

struct lstSelect {
	UInt16 listID;
	struct ListType *pList;
	Int16 selection;
} lstSelect;

フィールド

  • listID
    • 開発者が定義したリストのID
  • pList
    • ListType 構造体へのポインタ
  • selection
    • 新たに選択されたアイテムの番号(0 ベース)

menuCloseEvent ^TOP^

このイベントは現在使用されません。

menuCmdBarOpenEvent ^TOP^

目的

MenuHandleEvent() メニュー ルーチンは、ユーザがメニュー ショートカット キーを入力(これにより、コマンド ツールバーが画面下部に表示されます)したとき、このイベントを発します。アプリケーションは、コマンド ツールバーにカスタム ボタンを追加するために MenuCmdBarAddButton() を呼び出すことで、このイベントに応答するかもしれません。登録することで、共有ライブラリあるいは他の非アプリケーション コード リソースは、sysNotifyMenuCmdBarOpenEvent 通知を受け取るために、ツール バーにボタンを追加できます。

このイベントにより、data フィールドは以下の構造体を含みます。

Prototype

struct menuCmdBarOpen {
	Boolean preventFieldButtons;
	UInt8 reserved;
} menuCmdBarOpen;

フィールド

  • preventFieldButtons
    • true であれば、フィールド マネージャは、フィールドがフォーカスされたとき、標準の cut, copt, paste, undo ボタンを追加しません。false であれば、フィールドはそれらのボタンを追加します。
  • reserved
    • 使用されません。

コマンド ツールバーが表示されるのを防ぐためには、このイベントに応答して true を返してください。true を返すことでフォーム マネージャがツール バーを表示することを防ぐことができます。

互換性

3.5 New Feature Set が存在する場合にのみ実装されます。

menuEvent ^TOP^

目的

MenuHandleEvent() メニュー ルーチンがこのイベントを発します:

  • ユーザがプルダウン メニューからアイテムを選択したとき
  • ユーザが、コピーの Command-C などの利用可能なコマンドを入力することで、メニュー コマンドを選択したとき
    • ユーザがコマンド ツールバー上にある menuEvent を生成するようにセット アップされたボタンをタップしたとき

このイベントにより、data フィールドは以下の構造体を含みます。

Prototype

struct menu {
	UInt16 itemID;
} menu;

フィールド

  • itemID
    • 選択されたメニュー コマンドのアイテムID

menuOpenEvent ^TOP^

目的

MenuHandleEvent() メニュー ルーチンは、新たなアクティブ メニューが初期化されたとき、このイベントを発します。ユーザが初めてメニュー シルク-スクリーン ボタンまたはフォームのタイトルバーをタップするとメニューがアクティブになります。メニューは、アプリケーションが動作している間に、何度か最初期化と最アクティブ化される必要があるかもしれません。

メニューは以下のことが起きるまではアクティブ状態です。

  • FrmSetMenu() が呼び出されてフォーム上のアクティブ メニューを変更する
  • 新たなフォーム(文法フォームやアラート パネルも含む)がアクティブになる

ユーザがオプション メニューからアプリケーションの「About item(?)」を選択することを想定する必要があります。「About dialog(?)」は表示されるとアクティブ フォームになり、これによりメイン フォームの状態は消去されます。このメニューの状態は、メイン フォームが再びアクティブになったときに、保存されません。ユーザが再度メニューを呼び出したとき、menuOpenEvent を再び発するために、メニューを再度初期化しなくてはなりません。

アプリケーションは、MenuAddItem(), MenuHideItem(), MenuShowItem() 関数を使用するメニュー アイテムを追加する、隠す、または隠さないことで、このイベントに応答するかもしれません。

menuCloseEvent はシステムによって定義されますが、現在のところそれは発せられません。追加したメニュー アイテムが必要なくなり、クリーン アップ(リソースを閉じるなど)を行う必要がある場合は、frmCloseEvent に応じることで行ってください。

このイベントにより、data フィールドは以下の構造体を含みます。

Prototype

struct menuOpen {
	UInt16 menuRscID;
	Int16 cause;
} menuOpen;

フィールド

  • menuRscID
    • メニューのリソースID
  • cause
    • メニューが開いた理由。menuButtonCause であれば、ユーザがメニュー シルク-スクリーン ボタンまたはフォームのタイトルバーをタップしたために、メニューが表示されようとしていることになります。menuCommandCause であれば、ユーザがコマンドを入力したために、メニューが表示されずにアクティブ化されようとしていることになります。

互換性

3.5 New Feature Set が存在する場合にのみ実装されます。

nilEvent ^TOP^

nilEvent はアニメーション、ポーリング(訳者注: 通信回線を共有する各端末に順次問い合わせて、サービスを要求している端末を特定すること)などの状況で有用です。

イベント マネージャは、イベント キューにイベントが無いときに、このイベントを発します。これは、EvtGetEvent() にタイム アウト値(evtWaitForever = -1 以外の値)渡されたときに起こりえます。EvtGetEvent() は、特定時間内にイベントを返すことができない場合、nilEvent を返します。Palm OS のバージョンやデバイスが異なると、異なる状況で nilEvent 発せられる可能性があります。そのため、タイム アウトの期限切れ前であっても nilEvent を受け取るかもしれません。

penDownEvent ^TOP^

イベント マネージャは、ペンが最初にデジタイザに触れると、このイベントを発します。
このイベントで以下のデータが渡されます。

フィールド

  • penDown
    • 常にtrue
  • tapCount
    • この場所で受け取ったタップ数
  • screenX
    • ペンのウィンドウにおけるピクセル位置(ピクセルはウィンドウの左端から数えます)
  • screenY
    • ペンのウィンドウにおけるピクセル位置(ピクセルはウィンドウの上端から数えます)

penMoveEvent ^TOP^

目的

イベント マネージャは、ペンがデジタイザ上で動かされたとき、このイベントを発します。コントロールやリストなどの何種類かの UI オブジェクトはペンの動きを直接追跡するため、penMoveEvent は生成されないことに注意してください。

このイベントで以下のデータが渡されます。

フィールド

  • penDown
    • 常にtrue
  • tapCount
    • この場所で受け取ったタップ数
  • screenX
    • ペンのウィンドウにおけるピクセル位置(ピクセルはウィンドウの左端から数えます)
  • screenY
    • ペンのウィンドウにおけるピクセル位置(ピクセルはウィンドウの上端から数えます)

penUpEvent ^TOP^

目的

イベント マネージャは、ペンがデジタイザ上から持ち上げられたとき、このイベントを発します。コントロールやリストなどの何種類かの UI オブジェクトはペンの動きを直接追跡するため、penUpEvent は生成されないことに注意してください。

このイベントで、data フィールドは以下の構造体を含みます。

Prototype

struct _PenUpEventType {
	PointType start;
	PointType end;
};

フィールド

  • start
    • ストロークのディスプレイにおける開始位置
  • end
    • ストロークのディスプレイにおける終了位置

さらに、このイベントで以下のデータが渡されます。

  • penDown
    • 常にfalse
  • tapCount
    • この場所で受け取ったタップ数
  • screenX
    • ペンのウィンドウにおけるピクセル位置(ピクセルはウィンドウの左端から数えます)
  • screenY
    • ペンのウィンドウにおけるピクセル位置(ピクセルはウィンドウの上端から数えます)

popSelectEvent ^TOP^

目的

FrmHandleEvent() フォーム ルーチンは、ユーザがポップアップ リストのアイテムを選択したとき、このイベントを発します。

このイベントで、data フィールドは以下の構造体を含みます。

Prototype

struct popSelect {
	UInt16 controlID;
	struct ControlType *controlP;
	UInt16 listID;
	struct ListType *listP;
	Int16 selection;
	Int16 priorSelection;
} popSelect;

フィールド

  • controlID
    • 開発者が定義したリソースのID
  • controlP
    • ポップアップ トリガ オブジェクトのコントロール構造体(ControlType)へのポインタ
  • listID
    • 開発者が定義したポップアップ リスト オブジェクトのID
  • selection
    • 新たに選択されたリストのアイテムの番号(0 ベース)
  • priorSelection
    • 前回選択されたリストのアイテムの番号(0 ベース)

sclEnterEvent ^TOP^

目的

SclHandleEvent() ルーチンは、スクロール バー領域内で penDownEvent を受け取ると、このイベント発します。

通常、アプリケーションはこのイベントをハンドルする必要がありません。

このイベントにより、data フィールドは以下の構造体を含みます。

Prototype

struct sclEnter {
	UInt16 scrollBarID;
	struct ScrollBarType *pScrollBar;
} sclEnter;

フィールド

  • scrollBarID
    • 開発者が定義したスクロール バー リソースのID
  • pScrollBar
    • スクロール バー構造体へのポインタ

sclExitEvent ^TOP^

目的

SclHandleEvent() ルーチンは、ユーザがスクロール バーからペンを移動させると、このイベント発します。

非ダイナミック スクロールを実装するアプリケーションはこのイベントを待ち、valuenewvalue で提供される値を使用するテキストをスクロールさせるべきです。

このイベントは前回の sclRepeatEvent にかかわり無く発せられることに注意してください。しかしながら、アプリケーションは、ダイナミック スクロールを実装している場合、このイベントを捕らえる必要はありません。

Prototype

struct sclExit {
	UInt16 scrollBarID;
	struct ScrollBarType *pScrollBar;
	Int16 value;
	Int16 newValue;
} sclExit;

フィールド

  • scrollBarID
    • 開発者が定義したスクロール バー リソースのID
  • pScrollBar
    • スクロール バー構造体へのポインタ
  • value
    • スクロール バーの初期位置
  • newvalue
    • スクロール バーの新たな位置。与えられた valuenewvalue から実際にスクロールした量を知ることができます。

sclRepeatEvent ^TOP^

目的

SclHandleEvent() ルーチンは、ペンがスクロール バー領域内でホールドされ続けていると、このイベント発します。

ダイナミック スクロールを実装するアプリケーションはこのイベントを待つべきです。ダイナミック スクロールでは、ユーザがスクロール バーをドラッグするのに合わせてディスプレイが更新されます(ユーザがスクロール バーを解放した後ではありません)。

このイベントにより、data フィールドは以下の構造体を含みます。

Prototype

struct sclRepeat {
	UInt16 scrollBarID;
	struct ScrollBarType *pScrollBar;
	Int16 value;
	Int16 newValue;
	Int32 time;
} sclRepeat;

フィールド

  • scrollBarID
    • 開発者が定義したスクロール バー リソースのID
  • pScrollBar
    • スクロール バー構造体へのポインタ
  • value
    • スクロール バーの初期位置
  • newvalue
    • スクロール バーの新たな位置。与えられた valuenewvalue から実際にスクロールした量を知ることができます。
  • time
    • このイベントがイベント キューに追加されると、システム チェックは、次のイベントをいつ起こすべきか決定するために、カウントを始めます。

tblEnterEvent ^TOP^

目的

tblHandleEvent() ルーチンは、テーブル オブジェクトのアクティブなアイテムの領域内で penDownEvent を受け取ると、このイベントを発します。

このイベントにより、data フィールドは以下の構造体を含みます。

Prototype

struct tblEnter {
	UInt16 tableID;
	struct TableType *pTable;
	Int16 row;
	Int16 column;
} tblEnter;

フィールド

  • tableID
    • 開発者が定義したテーブルのID
  • pTable
    • テーブル構造体(TableType)へのポインタ
  • row
    • アイテムの列
  • column
    • アイテムの行

tblExitEvent ^TOP^

目的

tblHandleEvent() ルーチンがこのイベントを発します。TblHandleEventtblEnterEvent を受け取ると、ペンがディスプレイから持ち上げられるまでペンを追跡します。ペンが触れ始めたアイテム内で持ち上げられると、tblSelectEvent がイベント キューに追加されます。そうではなく、ペンが触れ始めたアイテムから出ると、tblExitEvent がイベント キューに追加されます。

このイベントにより、data フィールドは以下の構造体を含みます。

Prototype

struct tblExit {
	UInt16 tableID;
	struct TableType *pTable;
	Int16 row;
	Int16 column;
} tblExit;

フィールド

  • tableID
    • 開発者が定義したテーブルのID
  • pTable
    • テーブル構造体(TableType)へのポインタ
  • row
    • アイテムの列
  • column
    • アイテムの行

tblSelectEvent ^TOP^

目的

tblHandleEvent() ルーチンがこのイベントを発します。TblHandleEventtblEnterEvent を受け取ると、ペンがディスプレイから持ち上げられるまでペンを追跡します。ペンが触れ始めたアイテム内で持ち上げられると、tblSelectEvent がイベント キューに追加されます。そうではなく、ペンが触れ始めたアイテムから出ると、tblExitEvent がイベント キューに追加されます。

このイベントにより、data フィールドは以下の構造体を含みます。

Prototype

struct tblSelect {
	UInt16 tableID;
	struct TableType *pTable;
	Int16 row;
	Int16 column;
} tblSelect;

フィールド

  • tableID
    • 開発者が定義したテーブルのID
  • pTable
    • テーブル構造体(TableType)へのポインタ
  • row
    • アイテムの列
  • column
    • アイテムの行

winDisplayChangedEvent ^TOP^

目的

ダイナミック入力エリアがオープンまたはクローズされた後に、PINSetInputAreaState によって発せられます。通常、ユーザはダイナミック入力エリアをオープンしてクローズしますが、アプリケーションはそうしないかもしれません。

アプリケーションは使用可能なスペースにアクティブなフォームを再描画することでこのイベントに応答するかもしれません。

アプリケーションがこのイベントを受け取るとき、OS はすでにディスプレイ ウィンドウの領域を入力エリアの状態に合わせて変更しています。アプリケーションは入力エリアのアクティブなフォームのウィンドウのサイズを変更し、それに合わせてフォームを再度レイアウトしなくてはなりません。

このイベントで渡されるデータはありません。

互換性

Pen Input Manager Feature Set が存在する場合にのみ発せられ、pinAPIVersion1_1 を返します。

winEnterEvent ^TOP^

目的

イベント マネージャは、ウィンドウがアクティブ ウィンドウになるとき、このイベントを発します。これは 2 通りの方法で引き起こされます: WinSetActiveWindow() への呼び出しが発行される、あるいは、ユーザが見えているがアクティブでないウィンドウの領域内でタップする。フォームはすべてウィンドウですが、すべてのウィンドウがフォームであるわけではありません。例えば、メニュー バーはウィンドウですがフォームではありません。

このイベントにより、data フィールドは以下の構造体を含みます。

Prototype

struct _WinEnterEventType {
	WinHandle enterWindow;
	WinHandle exitWindow;
};

フィールド

  • enterWindow
    • 使用しようとするウィンドウのハンドル。ウィンドウがフォームであるなら、これは FormType 構造体へのポインタです。そうでなければ、WindowType 構造体へのポインタです。
  • exitWindow
    • アクティブ ウィンドウがある場合は、使用を止めようとするウィンドウのハンドル。アクティブ ウィンドウが無い場合は、0。ウィンドウがフォームであるなら、これは FormType 構造体へのポインタです。そうでなければ、WindowType 構造体へのポインタです。

winExitEvent ^TOP^

目的

このイベントは、ウィンドウが非アクティブ化されたときに、イベント マネージャによって発せられます。別のウィンドウがアクティブになるとき、ウィンドウは非アクティブ化されます(winEnterEvent を参照してください)。

Prototype

struct _WinExitEventType {
	WinHandle enterWindow;
	WinHandle exitWindow;
};

フィールド

  • enterWindow
    • 使用しようとするウィンドウのハンドル。ウィンドウがフォームであるなら、これは FormType 構造体へのポインタです。そうでなければ、WindowType 構造体へのポインタです。
  • exitWindow
    • 使用を止めようとするウィンドウのハンドル。ウィンドウがフォームであるなら、これは FormType 構造体へのポインタです。そうでなければ、WindowType 構造体へのポインタです。

← 1 章に戻る ↑トップへ 3 章に進む →