ようこそ ゲスト さん、新規登録(無料)して気になる疑問を解決しませんか?
スポンサーサイト(詳細
  • Java個別指導IT-Lab. - 誰でも最初は未経験。個別指導でプロへの道が開けます。随時入校可能

質問

QNo.4028295 プログラム分割で
質問者:yzm250 VC++6.0でダイアログベースのアプリを作成しています。
少々大きくなったのでプログラムを分割しました。
この場合
分割した側からメイン側のダイアログに配置したエディットボックスに
文字表示したいのですが出来ませんでした。

現在は
エディットボックスのメンバ変数 m_EdWindow として・・・

//コールバックルーチンの中で
CAiCallDlg *dlg;
dlg = (CAiCallDlg *)Param;

dlg->m_EdWindow.SetWindowText("もじもじ");

//ボタンなどのイベントの中で
m_EdWindow.SetWindowText("もじもじ");

で表示させていますが別ファイルとして作成した関数内からの表示はハンドルを取得して?
SetWindowText が使えるのでしょうか。
困り度:
  • 困っています
質問投稿日時:
08/05/17 08:03
この質問に対する回答は締め切られました。
最新から表示回答順に表示

回答

ANo.2 別ファイルにしたということですが
お使いになるクラスに関するヘッダファイルは当然インクリュードする必要があります

そうしないと CPPファイルだけではどのクラスの事を記述してあるのか分かりません

atdafx.h、AiCallDlg.h は最低限インクリュードしないといけないでしょう
回答者:redfox63
種類:回答
どんな人:専門家
自信:自信あり
回答日時:
08/05/17 14:56
この回答へのお礼この回答にお礼をつける(質問者のみ)

回答

ANo.1 メンバー変数m_EdWindowのアクセス指定子がpublicなら
ダイアログクラスのポインタ経由で可能だと思います

ボタンのイベントを別ファイルにしただけなら
そのイベントハンドラはダイアログクラスに属しているであろうと考えられるので直接 メンバー変数.SetWindowText で使えるはずです

dlgに取得したオブジェクトが本当にCAiCallDlgのポインターなのか
また そのメンバーの m_hWndは有効なハンドルなのかなどをチェックしましょう
メンバー変数 m_EdWindowのアクセス指定子の確認もしましょう

エラーが出るならその内容も投稿しましょう
単に『出来ませんでした』では何処に原因があるのか見当のつけようもありません
回答者:redfox63
種類:回答
どんな人:専門家
自信:参考意見
回答日時:
08/05/17 08:36
この回答への補足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 };

     ・ 
CEdit m_EdWindow;
     ・
     ・

とあります

>メンバー変数m_EdWindowのアクセス指定子がpublicなら
このpublic指定で出来そうなのですがこの場合の指定がわかりません。

宜しくお願い致します。
この回答へのお礼追加情報
 申し訳ありません、エラー表示の追加があります。

'SetWindowTextA' :左側がクラス、構造体、共用体ではありません。
のエラーも同時にでます。

別ファイルの中でincludeしないといけないヘッダファイルがあるのでしょうか。
最新から表示回答順に表示
スポンサーサイト(詳細
  • Java個別指導IT-Lab. - 誰でも最初は未経験。個別指導でプロへの道が開けます。随時入校可能