プロパティ シート ダイアログ ボックスについて

[戻る]
高橋 [E-Mail] 2004/01/22(木) 00:28:59
プロパティ シート ダイアログ ボックスを使い
1ページ目にコンポーネントのFlexGridControlを使い各ますにデーター
を入れました。
2ページ目もコンポーネントのFlexGridControlを使い1ページ目のデーターの
変更した物を入れたいのですが、1ページ目のデーターを取り込めません。
どのようにしたら取り込めるかご教授御願いします。

以下に一部コーディングを乗せます。

void CMyPopPage2::OnButton2() 
{
    UpdateData();int i=0;CString a,b,c,d,e,f;

    if(m_kaf!=0 && m_kae!=0)
    {
        if(m_ten!=0 || m_twn!=0 || m_ser!=0 || m_fou!=0)
        {
          CmyPopPage1* pa = (CmyPopPage1*)IDC_MSFLEXGRID1;
           for(i=m_kaf;i<m_kae+1;i++)
           {
           a = pa->m_data.GetTextMatrix(i,1);この部分でデーターが
                            入って来ません
           b = pa->m_data.GetTextMatrix(i,2);
           c = pa->m_data.GetTextMatrix(i,3);  
           d = pa->m_data.GetTextMatrix(i,4);  
           e = pa->m_data.GetTextMatrix(i,5);  
           f = pa->m_data.GetTextMatrix(i,6);  
           }

        }
    }
    
    
}

tib 2004/01/22(木) 12:12:46
> CmyPopPage1* pa = (CmyPopPage1*)IDC_MSFLEXGRID1;

IDC_MSFLEXGRID1って、コントロールのIDですよね? resource.hを見ればただの整数に
defineされていると思います。そんなものをclassのポインタにcastしたところで使い物
にはなりません。

CmyPopPage1* pa = (CmyPopPage1*)new CmyPopPage1(...);

としてみてください。関数の引数は、あなたがどのようなコンストラクタを用意している
かに依ります。

高橋 [E-Mail] 2004/01/22(木) 20:09:26
すいませんコンストラクタが何なのかが分かっていません
宜しく御願いします。

tib 2004/01/22(木) 20:14:08
CmyPopPage1::CmyPopPage1(...) という関数はありませんか? それがコンストラクタです。

「コンストラクタって何?」というのであれば、こちらを参照。
http://e-words.jp/?w=%83R%83%93%83X%83g%83%89%83N%83%5E&headline=%8C%A9%8Fo%82%B5%8C%EA%8C%9F%8D%F5

tib 2004/01/22(木) 20:18:34
もしくは、.hファイルの中に、

class CmyPopPage1
{
    CmyPopPage1(...)
}

という風に存在するとか。

高橋 [E-Mail] 2004/01/22(木) 21:53:08
すいません何となく分かったような気がします。
有り難うございます。

コーディングは、以下に記します。

CmyPopPage1::CmyPopPage1() : CPropertyPage(CmyPopPage1::IDD)
{
    //{{AFX_DATA_INIT(CmyPopPage1)
    //}}AFX_DATA_INIT
    m_file = "rand.ini";

}


 hヘッダーには、
class CmyPopPage1 : public CPropertyPage
{
    DECLARE_DYNCREATE(CmyPopPage1)

// コンストラクション
public:

    CmyPopPage1();
 
すいません関数の引数とは、どの部分をになるのでしょうか?
本当に度素人で申し訳ありません。
宜しく御願いします。

tib 2004/01/22(木) 21:56:36
> 関数の引数とは、どの部分をになるのでしょうか?
CmyPopPage1(「この部分」);

PATIO 2004/01/23(金) 15:24:51
C++というより、Cの入門書を読まれたほうが良いような気がします。
(C言語を知らない人向けにかかれたものならC++の入門書でもOKだと思います)
関数の引数と言う言葉すら知らないと言う事はそういった本を読んでいないと
言う事なのでは?
基礎的な知識がないと一から十までここで説明する羽目になるので
こういった掲示板ではつらすぎます。
せめて入門書を一通り読んである程度理解してください。
そのまま突っ走ってもここで触れられなかった部分については勘違いをしたまま覚えて
しまうかもしれません。

高橋 [E-Mail] 2004/01/23(金) 20:24:12
助言いただいた皆様有り難うございます。
別の方法を考えます。
自分には難しすぎました。
ドキュメントクラスがあればコディング出来るのですが、
クラス間のデーターのやり取りが理解できていません。
簡単なサンプルが無いでしょうか?
質問ばかりですいません
宜しく御願いします。

PATIO 2004/01/26(月) 10:48:19
クラスとは?から勉強する必要があるのであれば、
SOFTBANK社から出ているプログラミング講義C++をお勧めします。
演習問題等も載っているし、かなり基本的な細かい事まで書かれています。

ドキュメントクラスがあれば、コーディングできると言うのが、
ドキュメントクラスに対するコーディングのパターンがわかっているという話なら
クラスに関する知識からそろえた方が良いと思います。
パターンではなく、コードの意味がわかってプログラミングしないと
後々躓くと思います。

MFC特有のドキュメント−ビュー・アーキテクチャや基本クラスを継承した各ウインドウ
の実装方法などは、クラスそのものを理解したうえで使っていかないと応用が利かない
ものです。
出来れば、コンソールプログラムでクラスの挙動をじっくり勉強した方が将来的には
応用が利いてよいと思います。

高橋 [E-Mail] 2004/01/27(火) 10:14:32
いろいろと教えてくださいまして有り難うございます。
コードの意味が分かるように勉強したいと思います。
それからもう一度チャレンジしようと思います。
有り難うございました。

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