CEdit::LineFromChar
指定された文字のインデックスを含む行の行番号を取得するには、この関数を呼び出します。
int LineFromChar(
int nIndex = -1
) const;
パラメーター
- nIndex
目的の文字のから始まるインデックス値を編集コントロールのテキストに含まれているか、– 1 つが含まれます。nIndex が 1 の場合、キャレットの現在の行を含むつまり、行を指定します。
戻り値
nIndexで指定した文字のインデックスを含む行で始まる行番号。nIndex が 1 の場合、一つは、オプションの最初の文字を含む行の数を返します。オプションが指定されていない場合、現在の行数が返されます。
解説
文字のインデックスは、エディット コントロールの先頭から文字の数です。
このメンバー関数は、複数行のエディット コントロールだけが使用されます。
詳細については、Windows SDKの EM_LINEFROMCHAR を参照してください。
使用例
// The index of the char to get information on.
int nIndex = 4;
CString strText;
m_myEdit.GetWindowText(strText);
strText = strText.Mid(nIndex, 1);
// Get the text extent of the character.
CDC* pDC = m_myEdit.GetDC();
CSize sz = pDC->GetTextExtent(strText);
m_myEdit.ReleaseDC(pDC);
CPoint pt = m_myEdit.PosFromChar(nIndex);
// Dump the index, character, line number, and character bounds.
TRACE(_T("nIndex = %d, character = %c, line = %d, bounds = ")
_T("{%d, %d, %d, %d}\r\n"),
nIndex, strText[0], m_myEdit.LineFromChar(nIndex),
pt.x /* left */, pt.y /* top */,
pt.x+sz.cx /* right */, pt.y+sz.cy /* bottom */);
必要条件
ヘッダー: afxwin.h