キャレット (MSAA UI 要素リファレンス)
注意
このトピックでは、MSAA UI 要素リファレンスを目的としたキャレットについて説明します。 ここでは、さまざまな UI フレームワークでキャレットを使用する方法については説明しません。 使用している UI フレームワークの API リファレンス ドキュメントを参照してください。
キャレットは、ウィンドウのクライアント領域、またはキーボード入力を受け入れるコントロール内の点滅する行、ブロック、またはビットマップです。 テキストまたはグラフィックスを挿入する位置を示します。 キーボード フォーカスを持つウィンドウは一度に 1 つだけであるため、システムにはキャレットが 1 つだけ存在します。
キャレットでは、次の IAccessible メソッドがサポートされています。
キャレットでは、次の IAccessible プロパティが サポートされています。
プロパティ | 説明 |
---|---|
get_accChildCount | ChildCount プロパティは 0 です。 |
get_accName | Name プロパティは "Edit" です。 |
get_accRole | Role プロパティがROLE_SYSTEM_CARET。 |
get_accState |
State プロパティに使用できる値は次のとおりです。
|
他の UI 要素とは異なり、キャレット オブジェクトには関連付けられたウィンドウ ハンドルがありません。 キャレット オブジェクトへのアクセスを取得するには、クライアントが WinEventProc を設定し、キャレット オブジェクトがイベントを生成するまで待機する必要があります。
Riched20.dllによって提供されるリッチ エディット コントロールのキャレット オブジェクト (Windows 98 の Microsoft WordPad などのテキスト エディターで使用されます) は、テキストの選択中にその位置が変更されたときに WinEvents を送信しません。 ユーザーが Shift キーと方向キーを押してテキストを選択しても、キャレット オブジェクトは WinEvent EVENT_OBJECT_LOCATIONCHANGE をトリガーしません。 同様に、リッチ エディット メッセージを使用してプログラムで選択が設定されている場合、キャレット オブジェクトは新しい位置を示すイベントを送信しません。
Riched20.dllを使用するすべてのアプリケーションで、この問題が発生します。 以前のバージョンのリッチエディット コントロールを使用しているアプリケーションは、選択に基づいてイベントを正しく送信します。