エディットボックスの指定位置から文字列取得

解決


ひで  2008-08-04 17:12:06  No: 68811  IP: 192.*.*.*

よろしくお願い致します。

エディットボックスに下記のように複数行文字列が出力されていますが、
この内容を一行ずつ取得したいのですがどのようにすればよいでしょうか。

-----------
あいうえお
かきくけこ
さしすせそ
-----------

初歩的な質問ですみませんがよろしくお願いします。

編集 削除
maru  2008-08-04 18:23:43  No: 68812  IP: 192.*.*.*

> この内容を一行ずつ取得したいのですがどのようにすればよいでしょうか。
MFCならCEdit::GetLine()というその物がありますけど。

Windows SDKなら
lResult = SendMessage(      // returns LRESULT in lResult
    (HWND) hWndControl,      // handle to destination control
    (UINT) EM_GETLINE,      // message ID
    (WPARAM) wParam,      // = (WPARAM) () wParam;
    (LPARAM) lParam      // = (LPARAM) (LPCTSTR) lParam;
);

編集 削除
夏みかん  2008-08-04 20:34:59  No: 68813  IP: 192.*.*.*

SDK なら Windowsx.h に Edit_GetLine マクロ関数があるよ。
int Edit_GetLine( HWND hWnd, int no, LPTSTR lpBuff, WORD wMax );

EM_GETLINE メッセージならバッファの最初に取得可能な文字数をセット。
TCHAR szBuff[ 1024 ];

((WORD*)szBuff)[ 0 ] = 1024;
SendMessage( hWnd, EM_GETLINE, (WPARAM)no, (LPARAM)szBuff );
※上の記述はリトルエンディアン専用かもね。

編集 削除
かもねぎ  2008-08-05 07:41:27  No: 68814  IP: 192.*.*.*

ここにコードがありました
http://freezer.blog22.fc2.com/blog-entry-35.html

編集 削除
ひで  2008-08-05 13:29:08  No: 68815  IP: 192.*.*.*

maruさん、夏みかんさんどうもありがとうございました。環境を書き忘れてしまい申し訳ありません。MFCでした。GetLineを使用して解決致しました。
ありがとうございました(^−^)

編集 削除