■MFC相談室 mfc11.dll■
■ このスレッドは過去ログ倉庫に格納されています
0812デフォルトの名無しさん
NGNGテキストに変更がある度に処理を行いたいのです。
ClassWizard(VisualC++ 6.0)を使用して、
CEdit型の変数、m_EditXをエディットボックスに対応させ、
EN_CHANGEメッセージのハンドラを作成しました。
void CSelectDlg::OnChangeEditbox()
{
char buffer[5];
m_EditX.GetLine(0, buffer, 4);
・
・
}
実行してみると、ダイアログがオープンした途端、
CEdit::GetLine内部でAssertionが発生して止まってしまいます。
どうやらエディットボックスが有効になる前(?)に
EN_CHANGEメッセージが送られてくるようです。
http://www.flounder.com/getdlgitem.htm#Uninitialized%20Controls
これを避けるために、OnInitDialogが実行済みかどうかを
格納しておくBOOL変数を持たせる方法というのがあるそうです。
ただ、こういった処理をしたい場合、これが定番な書き方なのでしょうか?
もうちょっとスマートなやり方がありそうな気がするのですが。。
■ このスレッドは過去ログ倉庫に格納されています