ちなみに
UpdateDataの次の行から

CEdit * pWnd = (CEdit *)GetDlgItem(IDC_EDIT);
int lines = pWnd->GetLineCount();
int pos = pWnd->LineIndex(lines - 1);
pWnd->SetSel(pos, pos, FALSE);

とかやってみるとそれっぽく動いたのですが、どうも落とし穴がありそうな気が。

さらにIDC_EDIT2を追加してこちらも同様にWM_USER_ADD_STRING2で
テキストを追加、行を最後に移動と言う処理をさせると
IDC_EDITとIDC_EDIT2のどちらかしかスクロールバーが最後に来てくれないのです。
なぜでしょうか?