ダイアログのリストボックスに表示 – プログラミング – Home

ダイアログのリストボックスに表示
 
通知
すべてクリア

ダイアログのリストボックスに表示


めんたい
 めんたい
(@めんたい)
ゲスト
結合: 23年前
投稿: 5
Topic starter  

MFC、VC++4.0でダイアログのリストボックスの中にループ処理ごとに得られるデータを書き込
み、ループの最後に得られたデータを書き込んだときに、結果としてこのダイアログを表示させ
たいのですが、なにかアドバイスをいただけたらうれしいです。


引用解決済
トピックタグ
dairygoods
 dairygoods
(@dairygoods)
ゲスト
結合: 23年前
投稿: 1421
 

やりたい事だけを説明しても、
「じゃあ、がんばってくださいね」
としか言えません。

この機能を実現するためにめんたいさんが行ったとこ、
現状、および問題点を明記してください。


返信引用
めんたい
 めんたい
(@めんたい)
ゲスト
結合: 23年前
投稿: 5
Topic starter  

読み込んだデータをリストボックスへ出力し、そのデータを保存させるにはどのようにすればよ
ろしいのでしょうか?
VC++4.0、MFCで作業してます。


返信引用
PATIO
(@patio)
Famed Member
結合: 4年前
投稿: 2660
 

残念ながらまだ情報が足りません。

最初の内容も合わせて読んでもまだ良くわからないです。
単語の省略をせずに自分ではあたりまえと思っているような部分もきちんと書いてください。
貴方にとってのあたりまえが呼んでいる人にとってあたりまえとは限りません。

例えば、
ループの最後に得られたデータを書き込んだときにダイアログを表示とありますけれど、
ということは最後のデータが得られるまでダイアログを出したくないということでしょうか?

読み込んだデータとはどこから読み込むのですか?
データを保存させるとはどこに保存するのですか?

質問なれしていないのかも知れませんが、今書き込んでいる内容で回答を望んでも
多分、満足な回答は得られないと思いますよ。
今の内容で回答できるのは貴方の隣で作業しているような身近な人だけでしょう。


返信引用
PATIO
(@patio)
Famed Member
結合: 4年前
投稿: 2660
 

>貴方にとってのあたりまえが呼んでいる人にとってあたりまえとは限りません。

もとい、

 貴方にとってのあたりまえが読んでいる人にとってあたりまえとは限りません。

ですね。


返信引用
めんたい
 めんたい
(@めんたい)
ゲスト
結合: 23年前
投稿: 5
Topic starter  

説明が足らず申し訳ありません。最後のデータを読み込むまでダイアログは表示させないように
して、ループ間に読み込んだデータを全て表示させたいと思っています。
もう少し詳しく、1ループで1データをとってくるのですが、1ループごとにデータをダイアログ
のリストボックスに移し、このデータをリストボックスに記憶させ、最後のデータを読み込んで
リストボックスに移したところで、データが全て入った状態のリストボックスを読み込んだファ
イルを確認するための結果として、最後に表示させたいのですが、リストボックスに記憶させる
ことはできるのでしょうか?よろしくお願いします。


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

> (略)...はできるのでしょうか?

できます。

>> この機能を実現するためにめんたいさんが行ったとこ、
>> 現状、および問題点を明記してください。

あいかわらず、この部分の説明がないですが…。
めんたいさんは単に可能か否かの回答を求めているわけではないですよね?

めんたいさんの分からない部分はどこですか?
1) 1ループで1データを取ってくる処理
2) 1ループごとにデータをダイアログのリストボックスに移す処理
3) このデータをリストボックスに記憶させる処理
4) データが全て入った状態のリストボックスを表示させる処理
5) その他

また、めんたいさんはこの処理を行うプログラムを作成していますか?
作成したならば、プログラムはどのような状態ですか?
コンパイルできますか?
コンパイルは可能であれば、一部分でも動作しますか?
デバッガを使って動作を確認しましたか?
それとも、プログラムを丸ごと作って欲しいのですか?


返信引用
めんたい
 めんたい
(@めんたい)
ゲスト
結合: 23年前
投稿: 5
Topic starter  

リストボックスの内容を保存する方法を知りたいです。
コンパイルはできます。現状として、ダイアログの表示はできます。読み込んだデータがリスト
ボックスに1つしか表示されていない状態です。


返信引用
とおりすがり
 とおりすがり
(@とおりすがり)
ゲスト
結合: 24年前
投稿: 180
 

デバッガで追跡してます...?


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

>リストボックスの内容を保存する方法を知りたいです
リストボックスの内容を取得する方法知ってますか?
保存場所はどこですか
構造体ポインタ、データファイルなどいろいろありますけど...

実際に書いたソースコードを抜粋してアドバイスもらったほうが良くないですかね
やりたいことは、なんとなくしか分からないので
もう少し具体的回答もらえるかも知れませんよ!


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

リストボックスの内容を 保存する。っていうのが、方針として違うような気がしますが?

保存したいのは、(どこに表示されていようがいなかろうが)
ループごとに得られるデータ ですよね。

表示と保存は全然別の行為なのでいっしょに考えないほうがいいと思います。

問題をもうちょっと分割して一つ一つ片付けましょう。


返信引用
めんたい
 めんたい
(@めんたい)
ゲスト
結合: 23年前
投稿: 5
Topic starter  

コードを載せて説明します。
/////////////////////////////////////////////////////////////////////////////
//
// 関数 : SetStatus()
//
// 機能 : 読込結果を取得する
//
// 戻り値 : なし
//

void CFDList::SetStatus(LPREADSTA lpsta)
{
sta = *lpsta;
}

BOOL CFDList::OnInitDialog()
{
CDialog::OnInitDialog();
char szData[256];

// TODO: この位置に初期化の補足処理を追加してください
wsprintf(szData,%s %d %d %d %s %4d %4d,
sta.szFileName, // ファイル名
sta.szDate, // 送信日付
sta.szStartTime, // 開始時刻
sta.szEndTime, // 終了時刻
sta.szProgram, // 放送行事名
sta.wReadCnt, // 読込会館数
sta.wReceiveCnt // 受信会館数
);

// リストボックスに追加
m_FDL.AddString(szData);

return TRUE; // コントロールにフォーカスを設定しないとき、戻り値は TRUE
となります
// 例外: OCX プロパティ ページの戻り値は FALSE となります
}

staに取得してきた情報を入れて、szDataへ移し、AddStringでリストボックスへ表示させてい
ます。staにデータが入る部分がループによって繰り返され、その都度この処理が繰り返され
る。伺いたいのは、1度AddStringでリストボックスに表示させた情報をそのままリストボック
スに残しておく方法を教えてください。現状では、1つしかデータが残りません。
MFC、VC++4.0で開発しています。


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

リストボックスに複数の項目を表示するには、
AddStringを複数回呼び出します。

LPCTSTR data[] = { joe, alice, bob };
for (int i = 0; i < 3; i++)
m_listBox.AddString(data[i]);


返信引用
PATIO
(@patio)
Famed Member
結合: 4年前
投稿: 2660
 

めんたいさんのコードにループが見当たりません。
OnInitDialogは、CDialogの表示を開始する時に一回しか呼ばれませんよ。
ダイアログへの表示データの設定をOnInitDialogでやるのでしたら、
ダイアログクラスにstaの配列でも用意して、予めデータを全てセットしてから
DoModalをコールしないと駄目です。

この辺はCDialogクラスの動作についてきちんと勉強された方がよろしいと思います。
中途半端な状態で進むとますますこんがらがると思いますので。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

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