- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:リッチエディットのUPDATEメッセージ受け取り方)
リッチエディットのUPDATEメッセージ受け取り方
このQ&Aのポイント
- リッチエディットボックスのUPDATEメッセージを受け取る方法について教えてください
- ダイアログに貼り付けたリッチエディットボックスで文字が入力されるたびにUPDATEメッセージを受け取りたいのですが、OnInitDialog()に何かを書く必要があるのでしょうか
- ヘルプで調べてもわからなかったので、具体的な方法を教えていただけると助かります
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
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にいろいろ情報が載ってるのでそちらを参照してください。 日本語サイトは情報量が少ないので、英語サイトをオススメします。
お礼
おかげさまで解決しました。 イベントマスクかー。まだまだ知らないことが多すぎると痛感。 オンラインヘルプもこれからは活用したいと思います。 英語を読む努力も必要ですね。 いつもいつも私の拙い質問に丁寧な回答を頂き本当にありがとうございます。 m(_ _)m