OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

リッチエディットのUPDATEメッセージ受け取り方

  • 暇なときにでも
  • 質問No.122933
  • 閲覧数499
  • ありがとう数1
  • 気になる数0
  • 回答数1
  • コメント数0

お礼率 83% (55/66)

ダイアログにリッチエディットボックスを貼り付けています。
文字が入力されるたびにUPDATEメッセージを受け取りたいのですが。
下記注釈の意味がわからず困っています。OnInitDialog()に何かを書くということは判るのですが。ヘルプでも見つけることが出来ませんでした。
どうかこの私でも判るよう教えてください。よろしくお願いいたします。m(_ _)m

void CCtypeDlg::OnUpdateRichedit()
{
// TODO: これが RICHEDIT コントロールの場合、コントロールは、lParam マスク
// 内での論理和の ENM_UPDATE フラグ付きで EM_SETEVENTMASK
// メッセージをコントロールへ送るために CDialog::OnInitDialog() 関数をオーバー
// ライドしない限りこの通知を送りません。
// TODO: この位置にコントロール通知ハンドラ・・・
通報する
  • 回答数1
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.1
レベル8

ベストアンサー率 44% (11/25)

TODOの日本語は難しいですね(^_^;

意味的には、
通知を受け取るために、RichEditコントロールに EM_SETEVENTMASK メッセージを投げなさい。
その際の lParam には ENM_UPDATE という値の論理和をとりましょう。
これを CDialog::OnInitDialog() 関数をオーバーライドしてそこに書きなさい。
というようなことでしょうか。
RichEditコントロールの通知メッセージはイベントマスクというもので管理されていて、それをうまく設定してやらないとメッセージが通知されないのですね。


コードではこんな感じになります。
dwEventMask = SendMessage(hRichEdit, EM_GETEVENTMASK, 0, 0);
dwEventMask |= ENM_UPDATE;
SendMessage(hRichEdit, EM_SETEVENTMASK, 0, (LPARAM)dwEventMask);


RichEditコントロールに変数が割り当ててある場合はこんな感じでしょうか。
dwEventMask = m_ctlRichEdit.GetEventMask();
dwEventMask |= ENM_UPDATE;
m_ctlRichEdit.SetEventMask(dwEventMask);


MSDN onlineにいろいろ情報が載ってるのでそちらを参照してください。
日本語サイトは情報量が少ないので、英語サイトをオススメします。
お礼コメント
ystk

お礼率 83% (55/66)

おかげさまで解決しました。
イベントマスクかー。まだまだ知らないことが多すぎると痛感。
オンラインヘルプもこれからは活用したいと思います。
英語を読む努力も必要ですね。
いつもいつも私の拙い質問に丁寧な回答を頂き本当にありがとうございます。
m(_ _)m
投稿日時 - 2001-08-24 09:15:32
-PR-
-PR-
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ