EDITWORDBREAKPROCA
コールバックシグネチャ
INT EDITWORDBREAKPROCA(
LPSTR lpch,
INT ichCurrent,
INT cch,
WORD_BREAK_ACTION code
);パラメーター
| フィールド | 型 | 説明 |
|---|---|---|
| lpch | LPSTR | エディット コントロールのテキストへのポインターです。 |
| ichCurrent | INT | テキストのバッファー内の文字位置を示すインデックスで、関数がワード ブレークの検査を開始する位置を指定します。 |
| cch | INT | エディット コントロールのテキストに含まれる TCHARs の数です。ANSI テキストの場合はバイト数、Unicode テキストの場合は WCHAR の数になります。 |
| code | WORD_BREAK_ACTION | コールバック関数が実行する処理です。このパラメーターには、次のいずれかの値を指定できます。 |
公式ドキュメント
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 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)