サーバー上からファイルをダウンロードするアプリを
作成しているものです。
ClassAとClassBが存在するとして、
ClassAでファイルをダウンロードする処理を記述し、
ClassBでプログレスバーを含むダイアログを作成しています。
ClassAのファイル読み込みのループ処理のカウンターを
プログレスバーのメンバー変数m_plgと同調させたい。
例
ClassA
for(i=0;i<count;i++){
}
ClassB
m_plg.SetRange(0,count);
m_plg.SetPos(i);
かなり簡略化してます。
上記内容は実現可能だと思うのですが、メンバー変数の宣言部がおかしいのか
m_plgは宣言されていませんとエラーがでます。
メンバー変数の理解不足だと思うのですが、このような処理を行いたい場合は
どちらのClassにも認識されるようなコントロールのメンバー変数はどのようにして
宣言すればよろしいのでしょうか?
開発環境はVC++6.0 MFC ダイアログです。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
VCは使ったことないんでプログレスバーを
表すクラスの名前が分からないので、ここでは
class ProgBarだとすると、class Bはこんな
感じですか?
class B {
public:
B(){
...
m_plg.SetRange(0, count);
...
}
...
ProgBar m_plg;
...
};
m_plgを直接class Aからいじろうと
思うなら、class Bの中でpublicフィールド
内で宣言しなければなりません。
で、class A内で、
class A {
...
void report_progress(){
for( int i = 0 ; i < 100 ; i++ ){
...
dialogbox.m_plg.SetPos(i);
}
}
...
B dialogbox;
...
};
てな感じのことをしたいんですかね。
だとすると、以上のプログラム例のように、
B内でm_plgをpublicで宣言し、A内で
Bのインスタンスを生成(または外部から
ポインタかリファレンスで受け取る)、
そのBのインスタンスからm_plgをメンバ参照する、
ということで良いと思いますが。
No.1
- 回答日時:
簡略化というよりも、意図することが正確に伝わってきません。
クラスとインスタンスの関係について、少し調べられてはどうでしょう?
ClassB のインスタンスが Dialog だとしたら、ClassA 側から、Dialog.m_plg とアクセスすることはできます。もちろん public でなければなりません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBA 参照先で選んだファイルをコピーし、出力先に別名で保存したい 8 2022/05/13 20:37
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- Visual Basic(VBA) 【VBA】印刷マクロのループ処理が反映されません 3 2022/08/09 02:15
- PHP アップロード画像数でCSSを分けることに成功したのですが、画像の横に文字を並べることが出来ません。 3 2023/07/28 17:16
- Visual Basic(VBA) エクセルのマクロについて教えてください。 7 2023/07/04 09:18
- Visual Basic(VBA) エクセルのマクロで対象ごとにシート分けしてその内容をセルに書き込みたい 9 2022/08/24 13:23
- Visual Basic(VBA) Application.Dialogs(xlDialogFileDelete).Showの件 1 2023/02/22 10:02
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/21 09:42
- フリーソフト .264という動画ファイル 2 2022/07/12 11:30
- Visual Basic(VBA) 集めたシートのシート名を変更したい。 下記のコードでサブフォルダにあるファイルのSheet3を集めて 6 2022/08/23 10:38
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
private static という変数の修飾
-
インスタンス参照でアクセスで...
-
複数の変数を宣言する時、同時...
-
VB.NET getとsetの概念がわかり...
-
C# インスタンスの破棄
-
変数名の付け方
-
String a = "a"; と String b =...
-
JavaのSingletonパターンのpriv...
-
C#において、同じインスタンス...
-
生成したインスタンスを削除す...
-
オブジェクト参照がオブジェク...
-
エクセル(複数インスタンス)...
-
インスタンスを同じ名前で作成...
-
SQLを連続発行する時の正しい(?...
-
クラス型がインスタンス化され...
-
C#「オブジェクト参照が必要で...
-
抽象クラスのインスタンス生成...
-
「インスタンス」の意味をわか...
-
VB6.0のクラスで、自分自身のイ...
-
C#のメモリ解放についてご教授...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
変数名の付け方
-
インスタンス参照でアクセスで...
-
複数の変数を宣言する時、同時...
-
private static という変数の修飾
-
VB.NET getとsetの概念がわかり...
-
C#において、同じインスタンス...
-
生成したインスタンスを削除す...
-
C# インスタンスの破棄
-
newしないインスタンス?実体化...
-
SQLを連続発行する時の正しい(?...
-
「インスタンス」の意味をわか...
-
文字列を日付に変換でParseExce...
-
変数の参照でエラーが出てしま...
-
フォームの存在をチェックする方法
-
javaのクラスの作り方、エラー...
-
オブジェクト参照がオブジェク...
-
String a = "a"; と String b =...
-
エクセル(複数インスタンス)...
-
C#「オブジェクト参照が必要で...
-
他のファイルの変数参照
おすすめ情報