次の方法で共有


キャレット (MSAA UI 要素リファレンス)

注意

このトピックでは、MSAA UI 要素リファレンスを目的としたキャレットについて説明します。 ここでは、さまざまな UI フレームワークでキャレットを使用する方法については説明しません。 使用している UI フレームワークの API リファレンス ドキュメントを参照してください。

 

キャレットは、ウィンドウのクライアント領域、またはキーボード入力を受け入れるコントロール内の点滅する行、ブロック、またはビットマップです。 テキストまたはグラフィックスを挿入する位置を示します。 キーボード フォーカスを持つウィンドウは一度に 1 つだけであるため、システムにはキャレットが 1 つだけ存在します。

IAccessible メソッド

キャレットでは、次の IAccessible メソッドがサポートされています。

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を使用するすべてのアプリケーションで、この問題が発生します。 以前のバージョンのリッチエディット コントロールを使用しているアプリケーションは、選択に基づいてイベントを正しく送信します。

IAccessible インターフェイス