• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エディットの入力チェック)

エディットの入力チェック方法と条件

このQ&Aのポイント
  • エディットボックスをサブクラス化して数値のみ入力できるようにする方法と、10から96までの数値のみ入力できる条件を実装したいです。
  • 既に条件1の数値のみ入力可は実装が完了していますが、WM_KILLFOCUSでの処理を行う場合、次のフォーカスのポインタが利用不可であるため、他の方法を検討しています。
  • 入力後すぐに入力チェックを行う方法を知りたいです。環境はMFCとVC++6.0です。

質問者が選んだベストアンサー

  • ベストアンサー
  • A__
  • ベストアンサー率47% (22/46)
回答No.1

強制終了の原因はSetWindowText() によるエディットの文字列の変更の 無限ループだと思います。 case WM_COMMAND:  if(HIWORD(wParam) == EN_UPDATE){ //エディットが変更される直前。   //SetWindowText() による変更を無視させるために GetFocus() も使う。   if(GetFocus() == hEdit && (HWND)lParam == hEdit){

rewind
質問者

お礼

回答ありがとうございます。 CString csBuf; GetWindowText(csBuf); とコーディングすることで、文字列を取得できました。 エディットボックスの入力チェックは これで無事完了です。 原因は、無限ループの様でした。 よく考えると、サブクラス化したのに、 GetDlgItem(IDCxxx)->GetWindowText(csBuf); だと、無限ループしちゃいますね。 どうも、ありがとうございました。

関連するQ&A