メインとなるアプリケーション(Main)から長い処理を行うアプリケーション(Sub)を実行します。この時Sub側で行った処理の結果をMainのリストビューに表示させたいのですが、Main側では常にユーザーからの操作を受け付けられるようにしたいので、リストビューに表示する処理を行うことは避けたいのです。
何かいい方法はないでしょうか?よろしくお願いします。
とりあえず環境をお願いします。
古い方法ならDDEとか
「DDE」で検索するだけでいろいろ出てくるのでオススメ
>>とりあえず環境をお願いします。
開発環境はVisual Studio6.0で
リストビューはCommon Controls5.0を使用します。
>>古い方法ならDDEとか
過去ログ何個か見てみましたけど
DDEは値の受け渡しとかでよくでてきていますね。
SubからMainのコントロールを操作することもできるのでしょうか?
Visual Studioのヘルプ入ってないんですよね・・・・ふぅ・・
リストビューに表示するって事は、結構データ量もそこそこあるようですから、
1.Subでデータを選出し、ファイルとして吐き出させる
2.SubからMainに「データ選出したよ」と通知を出す
3.Mainが通知を受け取ったらデータファイルを読み込んで表示
とかどうですか?
確かに、Main側でリストビューを描画することになってしまうが
ループ処理の間にDoEventを書くことによって
ある程度のユーザーの処理を受け付けることはできる。
これもひとつの方法かもしれませんね。
対策のひとつとして検討してみます。
データが何万あるのかわかりませんが、既に用意されているデータをリストビューに追加していくだけならそんなに時間がかかるとは思えません
データのやり取りのためにわざわざファイルを作るのは避けたいので
VC++で共有メモリを作ってアクセスしてみようと思います。
>VC++で共有メモリを作ってアクセスしてみようと思います。
メモリマップドファイルのことですか、もしそうだとしたら
同期を取るのが面倒ですね。
他のアプリでの処理結果をSendMessageでMainに渡す方法が有ります。
ツイート | ![]() |