スタイルは
const DWORD dwStyle = WS_CHILD | WS_VISIBLE | ES_MULTILINE | ES_READONLY;
処理は
CEdit m_edit;
CString buf ;
m_edit.GetWindowTextW((LPTSTR)(LPCTSTR)buf, 0);
m_edit.SetWindowTextW( buf + mes + _T("\x0d\n"));
いろいろためしたのですが、どうしても1行目を書き換えて表示
してしまいます。
文字列を行でどんどん追加していくにはどうすればいいんでしょうか?
No.2ベストアンサー
- 回答日時:
CStringでやるならば
m_edit.GetWindowTextW( buf );
buf += mes;
buf += "\r\n";
m_edit.SetWindowTextW( buf );
といった具合でいいとおもいます
この場合テキストボックスの文字列を再設定しているので長くなるとちらつきが発生するかのせいがあります
別のやり方として
// 現在の選択文字列を位置を記憶
DWORD dwSel = m_edit.GetSel();
int n = m_edit.getWindowTextLength();
m_edit.SelSel( n, n );
m_edit.ReplaseSel( mes + "\r\n" );
// 選択位置を復元
m_edit.SetSel( dwSel );
といった具合の方がいいかもしれません
すごいやり方を教えていただきました。
感動しました。こんなのは考えても思いつくものではないですね。
大変勉強になりました。ありがとうございました。
No.1
- 回答日時:
MFCを使える環境がないので参考程度に。
GetWindowTextWの第二引数が0のため、bufに元テキストが入ってないように見えます。
あとCStringをLPCTSTR等にキャストして渡していいのは参照だけで中身を変更しない場合だけだったはずです。
GetWindowText()同様にCString &を直接渡すプロトタイプも持ってそうな気もしますが……
http://msdn.microsoft.com/ja-jp/library/db50wx7h …
持ってないようなら、GetWindowTextLength()で長さを取得、その分のTCHAR[]を確保してGetWindowTextW()、CStringに変換してSetWindowTextW()、という流れでしょうか。
((LPTSTR)(LPCTSTR)は何も考えずに動いたのでいつも使っていました。
型変換の勉強しなおします。ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 複数csvを横に追加していくマクロについて 2 2023/04/25 09:19
- Visual Basic(VBA) VBA エクセル 条件の設定 1 2022/03/28 10:24
- Excel(エクセル) エクセル VBA For Next 繰り返しの書き方を教えてください 6 2022/09/01 14:11
- Visual Basic(VBA) フォルダの場所を可変にしたいです(マクロ) 4 2023/05/11 10:00
- Excel(エクセル) 2つのVBAを一緒にしたら機能しなくなりました(エクセル) 7 2022/06/02 12:41
- Visual Basic(VBA) オブジェクトが見つかりません 1 2023/06/24 19:43
- Visual Basic(VBA) Excel-VBAでのファイルの開き方 4 2023/02/14 11:01
- Visual Basic(VBA) findメソッドの変数について 6 2023/06/23 08:01
- Visual Basic(VBA) VBA Bookの表示、非表示 1 2022/09/16 20:44
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelはなんで先頭の0を消すん...
-
VBAでの Replace関数で、ワイル...
-
エクセルでアルファベットか数...
-
文字列からタブコードを取り除...
-
EXCELで=より左の文字を一括で...
-
excel vba 17桁の数字が表示で...
-
[C言語]fputsとfprintfの違い
-
GASに文字列として関数を入れる...
-
googleスプレッドシートでカッ...
-
php言語の脆弱性について
-
マクロ処理でのループの記述に...
-
VBA2005 16進を2桁で表示したい。
-
Excelで指数表現しないようにす...
-
“丸(〇/○/◯)”に似た文字…
-
Access2000 (VBA) ' & "など...
-
Windowsでファイルのリネームで...
-
Left関数とRight関数を合わせた...
-
【VB.NET】for each文からのINS...
-
C言語でファイルから特定の文字...
-
変数内に入った文字列の結合 UWSC
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルでアルファベットか数...
-
EXCELで=より左の文字を一括で...
-
文字列からタブコードを取り除...
-
Excelで3E8を3.00E+8にしない方...
-
VBAでの Replace関数で、ワイル...
-
Excelで指数表現しないようにす...
-
[C言語]fputsとfprintfの違い
-
エクセルで文字列をtxtファイル...
-
同一セル内に関数と文字列を同...
-
エクセルで文字列の最大値を抽...
-
Excelはなんで先頭の0を消すん...
-
MS SQLServer のSQLで文字列の...
-
エクセル 数値データを桁をそ...
-
Left関数とRight関数を合わせた...
-
VBA2005 16進を2桁で表示したい。
-
VBの「As String * 128」とは?
-
Msgboxの×が押されたとき
-
sedなどで、特定の文字列の後の...
-
【Excel VBA】複数ある特定の文...
-
OnTime 使用時のプロシージャへ...
おすすめ情報