VC++6.0でダイアログベースのアプリを作成しています。
少々大きくなったのでプログラムを分割しました。
この場合
分割した側からメイン側のダイアログに配置したエディットボックスに
文字表示したいのですが出来ませんでした。
現在は
エディットボックスのメンバ変数 m_EdWindow として・・・
//コールバックルーチンの中で
CAiCallDlg *dlg;
dlg = (CAiCallDlg *)Param;
dlg->m_EdWindow.SetWindowText("もじもじ");
//ボタンなどのイベントの中で
m_EdWindow.SetWindowText("もじもじ");
で表示させていますが別ファイルとして作成した関数内からの表示はハンドルを取得して?
SetWindowText が使えるのでしょうか。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
別ファイルにしたということですが
お使いになるクラスに関するヘッダファイルは当然インクリュードする必要があります
そうしないと CPPファイルだけではどのクラスの事を記述してあるのか分かりません
atdafx.h、AiCallDlg.h は最低限インクリュードしないといけないでしょう
No.1
- 回答日時:
メンバー変数m_EdWindowのアクセス指定子がpublicなら
ダイアログクラスのポインタ経由で可能だと思います
ボタンのイベントを別ファイルにしただけなら
そのイベントハンドラはダイアログクラスに属しているであろうと考えられるので直接 メンバー変数.SetWindowText で使えるはずです
dlgに取得したオブジェクトが本当にCAiCallDlgのポインターなのか
また そのメンバーの m_hWndは有効なハンドルなのかなどをチェックしましょう
メンバー変数 m_EdWindowのアクセス指定子の確認もしましょう
エラーが出るならその内容も投稿しましょう
単に『出来ませんでした』では何処に原因があるのか見当のつけようもありません
この回答への補足
redfox63さん早々のご回答ありがとうございます。
質問時に記載しましたプログラムの一部はエラーがなく動作している部分です。
同じような表示を別ファイルとした関数の中で実行したいのですが
単純に持って行って実行しますと (m_EdWindow.SetWindowText("もじもじ"); の場合)
'm_EdWindow' : 定義されていない識別子です・・・とのエラーとなります。
m_EdWindowはエディットボックスを配置しClass Wizardでメンバ変数を設定して使っています。
出来たスケルトン中に
DDX_Control(pDX, IDC_EDIT1, mEdWindow);
さらにヘッダファイルの中で
// CAiCallDlg ダイアログ
class CAiCallDlg : public CDialog
{
// 構築
public:
CAiCallDlg(CWnd* pParent = NULL); // 標準のコンストラクタ
// ダイアログ データ
//{{AFX_DATA(CAiCallDlg)
enum { IDD = IDD_AICALL_DIALOG };
・
・
CEditm_EdWindow;
・
・
とあります
>メンバー変数m_EdWindowのアクセス指定子がpublicなら
このpublic指定で出来そうなのですがこの場合の指定がわかりません。
宜しくお願い致します。
追加情報
申し訳ありません、エラー表示の追加があります。
'SetWindowTextA' :左側がクラス、構造体、共用体ではありません。
のエラーも同時にでます。
別ファイルの中でincludeしないといけないヘッダファイルがあるのでしょうか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- C言語・C++・C# このプログラミングの問題を教えて欲しいです。 キーボードから整数kを入力し、kが配列aの中に何個存在 2 2022/12/19 22:50
- 大学・短大 C言語線形リストの問題です 3 2022/12/22 00:45
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
- Visual Basic(VBA) 動かなくなってしまった古いVBAを動くようにしたい 8 2022/09/20 13:57
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- PHP ここでの ②if($su_d<>"")の比較演算子 を使う理由は 1 2022/03/26 02:33
- Visual Basic(VBA) VBA 参照先で選んだファイルをコピーし、出力先に別名で保存したい 8 2022/05/13 20:37
- Visual Basic(VBA) VBAでファイルを開くプログラムがエラーです 2 2023/02/21 16:56
- Visual Basic(VBA) ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています 17 2022/12/07 12:03
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Eclipse・プロジェクトで、フォ...
-
java クラスファイルとソースコ...
-
「削除するか、クラスパスの正...
-
javaクラスファイルをEclipseで...
-
Eclipse「リフレッシュ」と「ク...
-
jarの分割に関するベストプラク...
-
earファイルを展開する方法
-
【Eclipse】パッケージ・エクス...
-
SVFの設定について:クラスパス...
-
”書きこみできません”とエラー...
-
EclipseでHTTP404エラーが出る。
-
Javaアプリケーションのアイコ...
-
コンパイルをしようとするとエ...
-
jdbcドライバのjarファイルにク...
-
VB 2008 DLL作成の方法
-
【Eclipse】逆コンパイルでエラ...
-
eclipse でclassesフォルダーが...
-
JAVAでのexeファイル作成
-
java.io.Fileクラスは絶対パス...
-
JAVAで外部ファイルをインクルード
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Eclipse・プロジェクトで、フォ...
-
javaクラスファイルをEclipseで...
-
Eclipse「リフレッシュ」と「ク...
-
classファイルについて
-
SVFの設定について:クラスパス...
-
eclipse でclassesフォルダーが...
-
EclipseでHTTP404エラーが出る。
-
earファイルを展開する方法
-
【Eclipse】パッケージ・エクス...
-
JADで*.jarごとデコンパイルす...
-
プログラム実行の際に、「ソー...
-
jdbcドライバのjarファイルにク...
-
「削除するか、クラスパスの正...
-
コンパイルをしようとするとエ...
-
java クラスファイルとソースコ...
-
コンパイルした後 java (class...
-
【Eclipse】逆コンパイルでエラ...
-
Javaアプリケーションのアイコ...
-
VisualStudioでC++クラスを追加...
-
「メイン・マニフェスト属性が...
おすすめ情報