
開発環境
・Windows XP (32bit)
・Visual C++ 2005
以下内容でCEditの派生クラスを作成したところ、
その派生クラスを使用するダイアログで
EN_CHANGEイベントがキャッチ出来ませんでした。
どうすればキャッチ出来るようになるでしょうか?
アドバイス頂けると大変ありがたいです。
※エディットコントロールに文字を入力すると
以下(1)の処理には来るのですが、
以下(2)の処理には来ませんでした。
//------------------------------------------------
// EditEx.h
//------------------------------------------------
// CEditの派生クラス
class CEditEx : public CEdit
{
public:
CEditEx(void);
virtual ~CEditEx(void);
//------------------------------------------------
// EditEx.cpp
//------------------------------------------------
// CEditExクラス内でEN_CHANGEイベントを処理
BEGIN_MESSAGE_MAP(CEditEx, CEdit)
ON_CONTROL_REFLECT(EN_CHANGE, &CEditEx::OnEnChange)
END_MESSAGE_MAP()
// EN_CHANGEイベントハンドラ
void CEditEx::OnEnChange(void)
{
// (1)
}
//------------------------------------------------
// DialogEx.h
//------------------------------------------------
// CEditExクラスをメンバに持つダイアログ
class CDialogEx : public CDialog
{
private:
CEditEx m_Edit1;
//------------------------------------------------
// DialogEx.cpp
//------------------------------------------------
// CDialogExクラス内でもEN_CHANGEイベントを処理したい
BEGIN_MESSAGE_MAP(CDialogEx, CDialog)
ON_EN_CHANGE(IDC_EDIT1, &CDialogEx::OnEnChangeEdit1)
END_MESSAGE_MAP()
// EN_CHANGEイベントハンドラ
void CDialogEx::OnEnChangeEdit1(void)
{
// (2)
}
No.1ベストアンサー
- 回答日時:
ON_CONTROL_REFLECT を ON_CONTROL_REFLECT_EX に書き換えて、
void CEditEx::OnEnChange(void) を BOOL CEditEx::OnEnChange(void) に書き換えます。
OnEnChangeの戻り値にFALSEを返せば、親(CDialogEx)のハンドラが呼び出されますよ。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
CEdit の内容が変わった時にメッセージを表示させたい
C言語・C++・C#
-
CStringからchar*への型変換について教えてください。
C言語・C++・C#
-
エディットボックスの入力制限について
C言語・C++・C#
-
-
4
EDITコントロールで入力できる文字を制限するには?
C言語・C++・C#
-
5
VC++で文字列から任意の文字を削除するにはどうしたらいいですか?
C言語・C++・C#
-
6
画面を強制的に再描画させる方法
C言語・C++・C#
-
7
CStringのFindで文字列検索を行いたいのですが
C言語・C++・C#
-
8
エディットコントロールでEnter押した時の動作
C言語・C++・C#
-
9
ダイアログ表示時にチェックボックスにチェックされている状態にするには?
C言語・C++・C#
-
10
ラベル(スタティックテキスト)内での改行。
C言語・C++・C#
-
11
MFCでコンボボックスを選択不可状態にしたい
C言語・C++・C#
-
12
CStaticコントロールの静的イメージ描画
C言語・C++・C#
-
13
ダイアログ内コントロールの位置取得について
C言語・C++・C#
-
14
CFileDialogの最初のディレクトリ設定
C言語・C++・C#
-
15
CString型 全角半角を意識せずに「1文字」ずつ取り出す
C言語・C++・C#
-
16
SetDlgItemTextの使い方について
C言語・C++・C#
-
17
エディットボックスのフォントを変えたい
C言語・C++・C#
-
18
CStringの文字列検索&抜き出しについて
C言語・C++・C#
-
19
文字列の置換をCStringで(C++)
C言語・C++・C#
-
20
MFC ダイアログ上のID取得について
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
スイッチが二台あり、別々のア...
-
VBAでPDF作成をしたあと、指定...
-
aspxをhtmlに変換する方法について
-
vba マージエリアの行数を非表...
-
SJISで、全角文字Aの文字コード...
-
onedrive にexcelファイルをア...
-
Windows10を新規インストールし...
-
Windowsで複数のファイルを同じ...
-
【VB.NET】Excelの最終行までの...
-
VB.NET Excelを読み込んでDataT...
-
VB.NETでMSComm が追加できず?
-
C#からvbsを実行したい
-
vba 空のデータをSplitする時の...
-
ffftpでファイル取得が0バイト...
-
Excelにて、シート間で、データ...
-
VB2017で、WEBサイト...
-
フォルダの中のフォルダも圧縮...
-
コマンドプロンプトの窓の起動...
-
エクセルに張り付けた写真のフ...
-
SPO2測定
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
既定のコンストラクタがない?
-
FriendとPublicの違い。。。
-
(UWSC) 「#32770」の意味わかり...
-
ダイアログ表示時にチェックボ...
-
イベントにAddHandlerされてい...
-
エディットコントロールでEnter...
-
オーバーライド関数の呼び出し...
-
このコンパイルエラーの意味に...
-
【ASP.NET】 独自で作成したク...
-
MFC モードレスDlgについて
-
[MFC] CWnd::MessageBoxの警告...
-
ボタンのオーナードローについて
-
MessageBoxを継承したい
-
ダイアログクラスのコントロー...
-
vba sendKeysを送る相手のソフ...
-
エディットコントロールのイベ...
-
Delphi6 DLL内でのメモリ共有(?)
-
個々の関数について継承してい...
-
privateなメンバ関数をテストす...
-
WindowsAPIのリストビューの...
おすすめ情報