Win32 API 日本語リファレンス
ホーム › UI.Controls › EDITWORDBREAKPROCA

EDITWORDBREAKPROCA

コールバック

シグネチャ

INT EDITWORDBREAKPROCA(
    LPSTR lpch,
    INT ichCurrent,
    INT cch,
    WORD_BREAK_ACTION code
);

パラメーター

フィールド型説明
lpchLPSTRエディット コントロールのテキストへのポインターです。
ichCurrentINTテキストのバッファー内の文字位置を示すインデックスで、関数がワード ブレークの検査を開始する位置を指定します。
cchINTエディット コントロールのテキストに含まれる TCHARs の数です。ANSI テキストの場合はバイト数、Unicode テキストの場合は WCHAR の数になります。
codeWORD_BREAK_ACTION

コールバック関数が実行する処理です。このパラメーターには、次のいずれかの値を指定できます。

値 意味
WB_CLASSIFY
指定された位置にある文字の文字クラスとワード ブレーク フラグを取得します。この値はリッチ エディット コントロールで使用します。
WB_ISDELIMITER
指定された位置にある文字が区切り文字かどうかを調べます。
WB_LEFT
指定された位置より左にある単語の先頭を検索します。
WB_LEFTBREAK
指定された位置より左にある単語末尾の区切り文字を検索します。この値はリッチ エディット コントロールで使用します。
WB_MOVEWORDLEFT
指定された位置より左にある単語の先頭を検索します。この値は CTRL+LEFT キーの処理中に使用されます。この値はリッチ エディット コントロールで使用します。
WB_MOVEWORDRIGHT
指定された位置より右にある単語の先頭を検索します。この値は CTRL+RIGHT キーの処理中に使用されます。この値はリッチ エディット コントロールで使用します。
WB_RIGHT
指定された位置より右にある単語の先頭を検索します。これは右揃えのエディット コントロールで役立ちます。
WB_RIGHTBREAK
指定された位置より右にある単語末尾の区切り文字を検索します。これは右揃えのエディット コントロールで役立ちます。この値はリッチ エディット コントロールで使用します。

公式ドキュメント

EM_SETWORDBREAKPROC メッセージで使用される、アプリケーション定義のコールバック関数です。複数行のエディット コントロールまたはリッチ エディット コントロールは、テキストの行を折り返すために EditWordBreakProc 関数を呼び出します。

EDITWORDBREAKPROC 型は、このコールバック関数へのポインターを定義します。EditWordBreakProc は、アプリケーション定義の関数名のプレースホルダーです。

戻り値

型: int

                    <i>code</i> パラメーターに <b>WB_ISDELIMITER</b> が指定されている場合、指定された位置の文字が区切り文字であれば 0 以外 (TRUE)、区切り文字でなければ 0 を返します。
                    <i>code</i> パラメーターに <b>WB_CLASSIFY</b> が指定されている場合、戻り値は指定された位置にある文字の文字クラスとワード ブレーク フラグです。それ以外の場合、戻り値はテキストのバッファー内にある単語の先頭を示すインデックスです。

解説(Remarks)

キャリッジ リターンとそれに続くライン フィードは、コールバック関数によって 1 つの単語として扱う必要があります。2 つのキャリッジ リターンとそれに続くライン フィードも、1 つの単語として扱う必要があります。

アプリケーションは、EM_SETWORDBREAKPROC メッセージでコールバック関数のアドレスを指定して、コールバック関数をインストールする必要があります。

Rich Edit 1.0:Microsoft Rich Edit 1.0 は、EditWordBreakProc に ANSI 文字のみを渡します。リッチ エディット コントロールでは、代わりに EM_SETWORDBREAKPROCEX メッセージを使用して、既定の拡張ワード ブレーク プロシージャを EditWordBreakProcEx コールバック関数に置き換えることができます。この関数は、文字セットなど、テキストに関する追加情報を提供します。

Rich Edit 2.0 以降:Microsoft Rich Edit 2.0 以降は、EditWordBreakProc に Unicode 文字のみを渡します。そのため、ANSI アプリケーションでは、リッチ エディットから渡された Unicode 文字列を WideCharToMultiByte で変換し、インデックスを適切に対応付ける必要があります。

メモ

winuser.h ヘッダーは、UNICODE プリプロセッサ定数の定義に基づいてこの関数の ANSI 版と Unicode 版を自動的に選択するエイリアスとして EDITWORDBREAKPROC を定義しています。エンコーディング中立のエイリアスを、エンコーディング中立でないコードと混在させて使用すると、不一致が生じ、コンパイル エラーや実行時エラーの原因となることがあります。詳細については、関数プロトタイプの規則 を参照してください。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)