エディットボックスの処理落ちについて – プログラミング – Home

エディットボックスの処理落ちについて
 
通知
すべてクリア

[解決済] エディットボックスの処理落ちについて


マグオ
 マグオ
(@マグオ)
ゲスト
結合: 20年前
投稿: 4
Topic starter  

はじめまして。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になります。

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


引用未解決
トピックタグ
aetos
(@aetos)
Noble Member
結合: 5年前
投稿: 1480
 

m_EditB は、ダイアログ上のコントロールに関連付けられていますか?
また、こういうケースでは、DDX を使って UpdateWindow で文字列を取得するのが一般
的だと思います。


返信引用
マグオ
 マグオ
(@マグオ)
ゲスト
結合: 20年前
投稿: 4
Topic starter  

シャノンさん

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


返信引用
aetos
(@aetos)
Noble Member
結合: 5年前
投稿: 1480
 

間違えた。
UpdateWindow じゃなくて UpdateDate です。ごめん。


返信引用
aetos
(@aetos)
Noble Member
結合: 5年前
投稿: 1480
 

UpdateData です orz


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました