
開発環境
・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#
-
エディットボックスの入力制限について
C言語・C++・C#
-
CStringからchar*への型変換について教えてください。
C言語・C++・C#
-
-
4
EDITコントロールで入力できる文字を制限するには?
C言語・C++・C#
-
5
画面を強制的に再描画させる方法
C言語・C++・C#
-
6
CStringのFindで文字列検索を行いたいのですが
C言語・C++・C#
-
7
ダイアログ表示時にチェックボックスにチェックされている状態にするには?
C言語・C++・C#
-
8
ラベル(スタティックテキスト)内での改行。
C言語・C++・C#
-
9
ダイアログ内コントロールの位置取得について
C言語・C++・C#
-
10
CString型 全角半角を意識せずに「1文字」ずつ取り出す
C言語・C++・C#
-
11
MFCでコンボボックスを選択不可状態にしたい
C言語・C++・C#
-
12
CFileDialogの最初のディレクトリ設定
C言語・C++・C#
-
13
MFCでOnPaintのタイミング
C言語・C++・C#
-
14
VC++で文字列から任意の文字を削除するにはどうしたらいいですか?
C言語・C++・C#
-
15
エディットコントロールでEnter押した時の動作
C言語・C++・C#
-
16
SetDlgItemTextの使い方について
C言語・C++・C#
-
17
エディットボックスのフォントを変えたい
C言語・C++・C#
-
18
VC++のコンボボックスの各項目の背景色と文字色を変える方法
C言語・C++・C#
-
19
CStringの文字列検索&抜き出しについて
C言語・C++・C#
-
20
MFC ダイアログ上のID取得について
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルに張り付けた写真のフ...
-
vba 空のデータをSplitする時の...
-
VBAでPDFを作成する際、同じ名...
-
phpのファイルがブラウザで開か...
-
【VB.NET】Excelの最終行までの...
-
VB.NET Excelを読み込んでDataT...
-
aspxをhtmlに変換する方法について
-
vba マージエリアの行数を非表...
-
SJISで、全角文字Aの文字コード...
-
高校1年生情報の問題について。
-
onedrive にexcelファイルをア...
-
キヤノン アソビカメラ iNSPiC ...
-
バッチで当日日付で作成される...
-
SPO2測定
-
エクセルのマクロについて教え...
-
インドe-Visa 承認書のApplicat...
-
SPIの非言語の割合と比が難しく...
-
SPIの対策は参考書でやるべきか?
-
LEDで電光掲示板に「A B C D E...
-
One Driveへのアクセス
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
既定のコンストラクタがない?
-
FriendとPublicの違い。。。
-
(UWSC) 「#32770」の意味わかり...
-
ダイアログ表示時にチェックボ...
-
イベントにAddHandlerされてい...
-
エディットコントロールでEnter...
-
オーバーライド関数の呼び出し...
-
このコンパイルエラーの意味に...
-
【ASP.NET】 独自で作成したク...
-
MFC モードレスDlgについて
-
[MFC] CWnd::MessageBoxの警告...
-
ボタンのオーナードローについて
-
MessageBoxを継承したい
-
ダイアログクラスのコントロー...
-
vba sendKeysを送る相手のソフ...
-
エディットコントロールのイベ...
-
Delphi6 DLL内でのメモリ共有(?)
-
個々の関数について継承してい...
-
privateなメンバ関数をテストす...
-
WindowsAPIのリストビューの...
おすすめ情報