エディットボックスへの表示 – プログラミング – Home

エディットボックスへの表示
 
通知
すべてクリア

[解決済] エディットボックスへの表示


ももたろう
 ももたろう
(@ももたろう)
ゲスト
結合: 20年前
投稿: 11
Topic starter  

みなさん

大容量ファイルの読込についてはいろいろとアドバイスを頂きまして
ありがとうございました。あのあと、お絵描きをする必要が出てきまして、
ダイアログベースに移植中です。

やりたいことは、「forループ中でエディットボックスに値を表示させる」
です。「 AfxMessageBox(Clear !!);」を入れて、毎回止めると値を
表示するのですが、コメントアウトしてしまうと全く表示されません。

for(it=0; i<N_AVE; i++)
{
li.QuadPart = (FILE_HEADER_SIZE + (LONGLONG)n_total_shot * EVN_DATA_SIZE +
nshot * EVN_DATA_SIZE);
SetFilePointerEx(hFile, li, NULL, FILE_BEGIN);
n = ReadFile(hFile, data, sizeof(RAW_Data), &dwResult, NULL) ;
j = sprintf(buffer, %I64d ,li);
j += sprintf(buffer + j, %3d %5.1f, i, DATA);
ss = buffer;
GetDlgItem(IDC_EDIT3)->SetWindowText(ss);
AfxMessageBox(Clear !!);
}

どのようにプログラミングしたらよいか悩んでおります。ご教示頂よろしく
お願い致します。


引用未解決
トピックタグ
Ban
 Ban
(@ban)
Prominent Member
結合: 5年前
投稿: 776
 

エディットボックスに文字列を SetWidnowText すると、
以前の内容が上書きされて新しい文字列が表示されます。
以前の内容に連結してくれるわけではありません。

・以前の内容を覚えておいて、自分で連結してから SetWindowText
・GetWindowText で以前の内容を取得し、自分で連結してから SetWindowText

など、自分で以前の文字列も表示するようにしてあげないと、
実際に画面に表示されるのは一番最後の文字列のみになります。


返信引用
dairygoods
 dairygoods
(@dairygoods)
ゲスト
結合: 23年前
投稿: 1421
 

ループ中はイベント処理されないので、
画面の更新もされません。

UpdateWindow() で強制的に
描画イベントを処理させることができます。


返信引用
ももたろう
 ももたろう
(@ももたろう)
ゲスト
結合: 20年前
投稿: 11
Topic starter  

Banさん、dairygoodsさん

こんにちは。ありがとうございました。下記のように変更して、改行させつつ
無事に表示させることができました。
ありがとうございました。

for(it=0; i<N_AVE; i++)
{
li.QuadPart = (FILE_HEADER_SIZE + (LONGLONG)n_total_shot * EVN_DATA_SIZE +
i * EVN_DATA_SIZE);
SetFilePointerEx(hFile, li, NULL, FILE_BEGIN);
n = ReadFile(hFile, data, sizeof(RAW_Data), &dwResult, NULL) ;
j = sprintf(buffer, %I64d ,li);
j += sprintf(buffer + j, %3d %5.1f\r\n, i, DATA);
ss = ss + buffer;
GetDlgItem(IDC_EDIT3)->SetWindowText(ss);
UpdateWindow();
// AfxMessageBox(Clear !!);
}


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました