タブシートとコントロールIDについて

[戻る]
tamami 2005/03/31(木) 11:24:20
<VS C++.net、MFC、Win2000Pro>
タブシートとコントロールIDについて。
初期表示のしつもんです。よろしくお願いいたします。

タブコントロールの子画面を4つ製作しています。
クラスが4画面それぞれにつけました。
(仮にそれぞれA〜D画面、CA〜CDクラスとする)

それぞれに同じコントロールを貼り付け、
IDも一緒。
コントロールは、
EditA×26個
EditB×26個
RadioButtonA×26個(AがGroup=true)
RadioButtonB×26個
RadioButtonC×26個
RadioButtonD×26個
です。
Resource.hにも
同じIDですので、#define定義は
画面ごとにはなく、一つです。

そこでやりたいことは、
初期に画面表示する際に親画面から一気に設定したいのです。
今やっている方法は
("EditA"等はDDXでのメンバ変数とします)
for(int i = 0; i< 26*4(画面); i++)
{ 
    CA.EditA[i] = "あいう";
    CB.EditA[i] = "えおか";
    CC.EditA[i] = "えおか";
    CA.RadioA[i] = 1;
    CB.RadioA[i] = 1;
}
UpdateData(fALSE);

と設定し、それぞれ表示させたいのですが、
うまく表示できません。

チャイルド画面で同じIDを使用していることはいけないことなのでしょうか。
(同一チャイルド画面上では重複していませんが) 

それともなにか別の原因なのでしょうか。

よろしくお願いいたします。

dark 2005/03/31(木) 12:30:24
まるちぽすとするなら書くな!
http://mfc.acty-net.ne.jp/ml/mfc/00050688.shtml

tamami 2005/03/31(木) 13:03:00
申し訳ございません
焦っていたものですからついしてしまいました。
以後気をつけます。

REE 2005/03/31(木) 13:18:42
>うまく表示できません。
どう上手くいかない?

このコードはどこにある?

いろは 2005/03/31(木) 13:19:28
なんとなくしか読んでませんが、

親ウィンドウをUpdateDataすると子ウィンドウのUpdateDataって
自動的に呼ばれるんでしたっけ?
CA.UpdateData(false);
などが必要な気がするのですが、、、

違うかな〜。。

tamami 2005/03/31(木) 14:48:57
[[解決]]
>REE さん
文字足らずで申し訳ありません。
メインフォーム(TabControlが貼り付けてある)側の
InitDialog()に記述しておりました。

結果的には
画面上にEditの文字が全く表示されず、
RadioButtonのCheckが全て=0の個所に入って表示される
という状態になっており、困っておりました。

>いろは さん
ご教授いただいた通り、
CA.UpdateData(FALSE);と、チャイルドクラスを
読んだ途端、表示されるようになりました。
有難うございました。
今まで気づきませんでした。

しかし、
CA〜CDを.UpdateData(FALSE);しても
更新されるのはタブシート1枚目のみです。
少し考えて見ます。

大変感謝しております。有難うございました!

dark 2005/03/31(木) 16:47:26
マルチポストしたほうには報告しなんですか?

>以後気をつけます。
マルチポストしないことだけじゃないだろ。(後処理とか)

こんなことやってたら誰も協力してくれなくなります。

古いスレッドには追加発言できません。