エディットボックスの処理落ちについて

[戻る]
マグオ 2005/01/27(木) 10:51:25
はじめまして。VC++を始めたばかりのものです。

現在、メインのダイアログにエディットボックスをOnKillfocusで設定し、入力された文
字列をメンバ変数で保持する処理を作成しています。
内容的にはADlg.hが以下の通りです。
class CADlg : public CDialog
{
public:
 CString m_B;                       // 入力文字列を保持したい変数

 CADlg(CWnd* pParent = NULL);    // 標準のコンストラクタ

// ダイアログ データ
 //{{AFX_DATA(CSheadTestToolDlg)
 enum { IDD = IDD_A_DIALOG };
 CEdit m_EditB;
 //}}AFX_DATA

でADlg.cppの内容は以下の通りです。
void CADlg::OnKillfocusB() 
{
 CString StrSize;

 m_EditB.GetWindowText(StrSize);
 m_B = StrSize;
}
これでダイアログを起動させ、エディットボックスに文字列入力し、フォーカスを移動
させると落ちてしまうのですが、何が原因なのでしょうか?デバッガで追うと
GetWindowTextの中のASSERT(::IsWindow(m_hWnd));でとまってしまっているようなので
すが・・・。
ちなみにこちらの環境はバージョン6.0、ダイアログベース、WindowsXPになります。

初歩の初歩で質問するのも恐縮なのですが、ご教授よろしくお願いします。

シャノン 2005/01/27(木) 12:00:04
m_EditB は、ダイアログ上のコントロールに関連付けられていますか?
また、こういうケースでは、DDX を使って UpdateWindow で文字列を取得するのが一般
的だと思います。

マグオ 2005/01/27(木) 12:28:27
[[解決]]
シャノンさん

回答ありがとうございました。単にm_EditBがダイアログ上のコントロールに関連付けら
れていないだけでした。すみません。UpdateWindow に関してはもう少し勉強しながら使
用できるようにしたいと思います。ありがとうございました。

シャノン 2005/01/27(木) 13:52:08
間違えた。
UpdateWindow じゃなくて UpdateDate です。ごめん。

シャノン 2005/01/27(木) 13:52:26
UpdateData です orz

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