
No.2ベストアンサー
- 回答日時:
★エディット・ボックスに文字列を行単位で追加していくのかな?
・この場合はエディット・ボックスの機能で『文字列の置換』があります。
この機能を利用して数値を文字列に変換した内容を行単位で追加していけます。
方法は『EM_REPLACESEL』というメッセージを利用します。このメッセージは
エディット・ボックスの範囲選択された文字列を指定の文字列に置換する処理を
行いますが、カーソル位置にある場所に文字列を挿入する事も可能です。
・挿入する場合は、最初にテキストのサイズを取得して、カーソル位置を最後に移動
させます。→『EM_SETSEL』メッセージで始点、終点を同じにするとカーソルの移動
になります。その後に『receivedChar』の文字列を挿入(追加)します。
下にそのサンプルを載せます。
サンプル:
LONG lSize;
_itoa( inputData[i], receivedChar, 16 );
lSize = (LONG)SendDlgItemMessage( argThr1->hWnd, IDC_EDIT2, WM_GETTEXTLENGTH, 0, 0 );
SendDlgItemMessage( argThr1->hWnd, IDC_EDIT2, EM_SETSEL, (WPARAM)lSize, (LPARAM)lSize );
SendDlgItemMessage( argThr1->hWnd, IDC_EDIT2, EM_REPLACESEL, TRUE, (LPARAM)receivedChar );
SendDlgItemMessage( argThr1->hWnd, IDC_EDIT2, EM_REPLACESEL, TRUE, (LPARAM)TEXT("\r\n") );
最後に:
・上記の方法で複数行のエディット・ボックス内に文字列を行単位で追加していけます。
ただし、このときに改行コードも追加します。これをしないと行単位になりません。
この改行コードの追加が最後の『TEXT("\r\n")』という1行です。
・もちろん『receivedChar』の文字列に『TEXT("\r\n")』を追加すれば最後の1行は必要ありません。
・あと『_itoa』関数よりも『wsprintf』関数の『%X』書式制御で変換することをお勧めします。
これは『_itoa』関数が VC 環境でしか利用できないため、他の処理系ではコンパイルできなくなる
可能性があるからです。ずっと VC 環境でプログラミングするのならばいいですけど。
・以上。おわり。→下の『参考URL』もどうぞ。
参考URL:http://www.winapi-database.com/Message/EM/EM_REP …
No.1
- 回答日時:
★最初に改行は『\r\n』で表現します。
・Windows の OS は改行を CR+LF の2バイトで表します。それでエディット・ボックスに
『\r\n』で改行として扱われます。よって文字列に『ABC\r\nDEF\r\n』とすれば2行になります。
ただし、エディット・ボックスのスタイルが複数行に設定されていないとダメですよ。
下にサンプルを載せます。
サンプル:
TCHAR szBuff[ 256 ];
wsprintf( szBuff, TEXT("0x%X\r\n2行目\r\n3行目\r\n"), inputData[i] );
SetDlgItemText( argThr1->hWnd, IDC_EDIT2, szBuff );
表示結果:
0xABCD
2行目
3行目
最後に:
・エディット・ボックスのスタイルに『ES_MULTILINE』を指定して下さい。
設定方法は『CreateWindow』でスタイルを指定するか、ダイアログのエディット・ボックスに
『ES_MULTILINE』をチェック(TRUE)して下さい。
・以上。おわり。
すみません。
_itoa(inputData[i], receivedChar, 16 );//数値を文字列に変換
SetDlgItemText(argThr1->hWnd, IDC_EDIT2, receivedChar);
で表示するごとに、改行されて表示され続ける方法はないですか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
CStringからchar*への型変換について教えてください。
C言語・C++・C#
-
MFCのエディットボックスについて
C言語・C++・C#
-
エディットコントロールでEnter押した時の動作
C言語・C++・C#
-
-
4
エディットボックスの改行
C言語・C++・C#
-
5
EM_GETSELメッセージについて。
C言語・C++・C#
-
6
CString型 全角半角を意識せずに「1文字」ずつ取り出す
C言語・C++・C#
-
7
画面を強制的に再描画させる方法
C言語・C++・C#
-
8
エディットボックスの入力制限について
C言語・C++・C#
-
9
CStringのFindで文字列検索を行いたいのですが
C言語・C++・C#
-
10
EDITコントロールで入力できる文字を制限するには?
C言語・C++・C#
-
11
CString から LPCTSTRの型に変換
C言語・C++・C#
-
12
CWnd::EnableWindow()の扱い方
C言語・C++・C#
-
13
ラベル(スタティックテキスト)内での改行。
C言語・C++・C#
-
14
エディットボックスのフォントを変えたい
C言語・C++・C#
-
15
CStringの文字列検索&抜き出しについて
C言語・C++・C#
-
16
ダイアログの上のテキストボックスの、初期値を設定する方法が分かりません・・・・
C言語・C++・C#
-
17
Enterキーを押されたら次の処理に移るという事をしたい。
C言語・C++・C#
-
18
CFileDialogの最初のディレクトリ設定
C言語・C++・C#
-
19
エディットボックスの背景の色変更方法
C言語・C++・C#
-
20
リストコントロールのデータの変更を検知したい
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAのコマンドボタンの文字列の...
-
ラベル(スタティックテキスト)...
-
COBOLの改行
-
ソースコードの1行が長いとき...
-
コンボボックスの項目中に改行を
-
グレープシティのSPREAD...
-
エクセルVBAのprintステートメ...
-
エスケープ文字の復帰(¥r)と...
-
VBAのINPUTBOX内で、改行する方法
-
改行コード(CR/LF)の設...
-
ファイルから読み取った改行文...
-
秀丸の正規表現で複数行にわた...
-
VBSのADODB.Streamで先頭に「追...
-
C++でのCRLFについて
-
xmlファイル(UTF-8)への書き...
-
Excel VBAからBeckyを起動して...
-
C#の改行について
-
Objective-c 改行コードによる...
-
VBA テキストボックスの行数取得
-
JAVA System.out.println の ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAのコマンドボタンの文字列の...
-
エスケープ文字の復帰(¥r)と...
-
ソースコードの1行が長いとき...
-
COBOLの改行
-
C++で空Enterの入力を判...
-
Excel VBAからBeckyを起動して...
-
【VBA】エクセルで最後の不要な...
-
エクセルVBA 文字列領域が不足...
-
テキストボックス行の桁数を制...
-
秀丸の正規表現で複数行にわた...
-
C言語の標準入力で改行しない方法
-
VBAでCSVをExcelに取り込む時に...
-
改行コード(CR/LF)の設...
-
グレープシティのSPREAD...
-
改行について
-
1行ごとに取得して、その改行...
-
ラベル(スタティックテキスト)...
-
コンボボックスの項目中に改行を
-
ファイルから読み取った改行文...
-
C# DataGridViewのセルを改行禁...
おすすめ情報