ダイアログメンバ変数をドキュメントクラスから – プログラミング – Home

ダイアログメンバ変数をドキュメントクラ...
 
通知
すべてクリア

ダイアログメンバ変数をドキュメントクラスから

固定ページ 1 / 2

マムー
 マムー
(@マムー)
ゲスト
結合: 21年前
投稿: 2
Topic starter  

あるダイアログ上のボタンを押したときに、ドキュメントクラスのメンバ関数を呼び出し、ドキ
ュメントクラス上でダイアログボックス上の値を読み込み処理をしたいと考えました。

ここでのドキュメントクラスとは、プロジェクトウィザードで作成されるドキュメントクラス
(C***DOC)です。

ダイアログ上の値とは、エディトコントロールに割りあてたdouble型の変数です。

よろしくお願いします。


引用解決済
トピックタグ
επιστημη
 επιστημη
(@επιστημη)
ゲスト
結合: 22年前
投稿: 600
 

で、何をお訊きになりたいのでしょうか?


返信引用
瀬戸っぷ
 瀬戸っぷ
(@瀬戸っぷ)
ゲスト
結合: 22年前
投稿: 160
 

http://forums.belution.com/ja/vc/000/215/99s.shtml

こちらでも同じような流れに……


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

マルチポスト云々の話は嫌なのでその件については「使用上の注意」を
読んでいただくとして、今の質問の仕方では何処の掲示板に行ってもいっしょですよ。
尋ねたい内容の具体的な部分が全くかかれていません。
何が知りたいのかを具体的に書きましょう。
あと、開発環境やMDI、SDI等、質問時に必要な情報に関しても「使用上の注意」を
よく読んでください。

掲示板で主に回答しているメンバーは、実際は掲示板を巡回して見ている場合が多いので
あちこちに書き込んだからといって回答が得られやすいというわけではありません。
むしろ、回答者の心証を害する場合が多いのでまともなレスをつけてもらえなくなる
可能性が高いです。
マルチポストは、「百害有って一利無し」なのでやめたほうが良いですよ。


返信引用
マムー
 マムー
(@マムー)
ゲスト
結合: 21年前
投稿: 2
Topic starter  

大変失礼しまいた。
以後、気をつけます。


返信引用
ryo
 ryo
(@ryo)
ゲスト
結合: 24年前
投稿: 252
 

多分やりたいことはボタン押した時にDocの関数内で処理をしたいということなのかな?
ボタン押下時にOnButton関数呼んで
次にDocの関数に引数渡しで値を渡してあげるなり、Docの変数に突っ
込むなりして処理すればいいのでは・・・?

CDoc* pDoc =GetDocument();
でインスタンスは生成できると思います。
ついでに関数呼ぶには

皆さんが書いてることはごもっともなので以後注意して下さい。

まだ俺も駆け出しなので詳しいことは解りませんが教えてもらう立場は
十分考えましょうね。

まぁ自分もいつもこういう質問でいいのかなぁと悩みながら質問してますが。
あと環境も書きましょうね^^


返信引用
ryo
 ryo
(@ryo)
ゲスト
結合: 24年前
投稿: 252
 

誤爆です・・・

ついでに関数呼ぶには
pDoc->関数名(引数);
で呼べると思います。


返信引用
επιστημη
 επιστημη
(@επιστημη)
ゲスト
結合: 22年前
投稿: 600
 

> CDoc* pDoc =GetDocument();
> でインスタンスは生成できると思います。

GetDocument() は CView のメンバですが、
CDialogのメンバではないので…

ダイアログをこさえたときに ドキュメント(のポインタ)を
与えてあげるのが一番楽ではないかしら。


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

http://forums.belution.com/ja/vc/000/215/99s.shtml
には再書き込みしてますけど

こっちは
>以後、気をつけます。
で終わってるんじゃないですか?


返信引用
瀬戸っぷ
 瀬戸っぷ
(@瀬戸っぷ)
ゲスト
結合: 22年前
投稿: 160
 

> こっちは
> >以後、気をつけます。
> で終わってるんじゃないですか?

解決したら処理してくれるでしょう。
http://www.net24.ne.jp/~kenji/bbs/wforum.cgi?
no=750&reno=no&oya=750&mode=msgview&page=0
こっちも。


返信引用
ryo
 ryo
(@ryo)
ゲスト
結合: 24年前
投稿: 252
 

>GetDocument() は CView のメンバですが、
>CDialogのメンバではないので…

すみません・・・重ね重ね誤爆です。


返信引用
επιστημη
 επιστημη
(@επιστημη)
ゲスト
結合: 22年前
投稿: 600
 

グローバル変数で逃げてますなぁ。 '愚策'もいいとこ。
こんな逃げをあちこちに使われちゃ堪らんだろなー


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

>グローバル変数で逃げてますなぁ。 '愚策'もいいとこ。
>こんな逃げをあちこちに使われちゃ堪らんだろなー

御意。
どうせ教えるならもっとオブジェクト指向にかなった方法を教えて
あげればよかったんでしょうけれど。教える方も一番まずい方法を
教えてしまってますね。

私ならダイアログを開く時に既に引き渡すべきデータがわかっていて
ダイアログ側のオペレーションでそのデータを切り替えるような事が
ないのであれば、ダイアログ内は単一のデータを扱うのみにして
CDocumentクラスとのやり取りは、CViewクラスに任せるようにすると思いますね。
ダイアログ側の操作で切替が必要ならεπιστημηさんが提案されていたように
ダイアログにCDocumentクラスのポインタを引き渡しておくと思います。
いずれにせよ、それで操作は出来るはずですから。

そりゃ、大昔のBASICでは全部グローバル変数でしたけれど、
グローバル変数だと色々面倒な部分もありましたよねぇ。
基本的にはなるべく局所に収めたほうがモジュールの独立性があがるから
良いと思いのですけれど。


返信引用
ryo
 ryo
(@ryo)
ゲスト
結合: 24年前
投稿: 252
 

①>次にDocの関数に引数渡しで値を渡してあげるなり、

②>Docの変数に突っ込むなりして処理すればいいのでは・・・?

②は確かにまずい処理ですね。

まぁこういう方法もというつもりで書いたのですが。

すみませんでした経験が足りませんでした。


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

あら、このスレッドまだ閉まってなかったんですね。

επιστημηさんと私が書いているのは、マルチポスト先の話なので
ryoさんに対する話ではないです。
気になさらないでいいと思います。

マルチポスト先の回答者とryoさんが同じ方なら話は別ですけれど、
そればないですよね。


返信引用
固定ページ 1 / 2

返信する

投稿者名

投稿者メールアドレス

タイトル *

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