2001年05月13日(Sun) [長年日記]
_ リッチエディット(CRichEditCtrl)
MFCのリッチエディット(CRichEditCtrl)を使ったプログラムが上手く動かず、昨日からWeb等を漁りまくってなんとか解決策を見つけた。各情報は個別に発見したので,後のため,ここでまとめておく。
- (1) リッチエディットを使ったプログラムが起動しない
- [問題点]
- ダイアログ(CDialog)やフォームビュー(CFormView)上にリッチエディットを配置したアプリケーションが起動しない。
SDI/MDIプログラムでは、空のドキュメントの生成に失敗した旨のエラーを表示して終了。 - [解決策]
- リッチエディットを使うための初期化が必要。
プログラム起動時に一度だけ初期化すればよいので、アプリケーションクラスのInitInstance()で、3Dコントロールの初期化の次あたりに以下の関数呼び出しを追加:AfxInitRichEdit();
ただし,リッチエディットビュー(CRichEditView)を使っている場合は不要(らしい)。 - (2) キーボードフォーカス取得/喪失時のハンドラが呼び出されない
- [問題点]
- ClassWizardからリッチエディットのフォーカス取得(EN_SETFOCUS)/喪失(EN_KILLFOCUS)ハンドラを登録しても、対応する関数が呼び出されない。
- [解決策]
- ClassWizardが生成するメッセージマップが腐っている。
フォーカス取得の場合、ClassWizardは以下のようなメッセージマップを生成する:ON_NOTIFY(EN_SETFOCUS, IDC_RICHEDIT1, OnSetfocusRichedit1)
しかし、コントロールID IDC_RICHEDIT1のリッチエディットにフォーカスが移っても、メッセージハンドラOnSetfocusRichedit1()は全く呼び出されない。
これを以下のように変更すれば、正常動作するようになる:ON_EN_SETFOCUS(IDC_RICHEDIT1, OnSetfocusRichedit1)
フォーカス喪失の場合も同様:ON_EN_KILLFOCUS(IDC_RICHEDIT1, OnKillfocusRichedit1)
_ 命の洗濯
だぶる☆えっちさんの日記によれば,彼は今,上高地にいるらしい。
ええのぅ…
上高地といえば、約12年前、就職した年の夏に常念岳へライチョウを見に行って、下山した後に一度だけ訪れたことがある。そのときは悪天候で、鉛色の空の下、山々も雲の彼方に霞み、絵葉書の写真にあるような風景は全く拝めなかった。「いつか雪辱戦を」と思ったものの、今に至るに実現していない。
今日の俺?
こんなこと書いてて,休みのわけがない (--;)
_ オークション(11)
昨日落札した分について、事務所へ出てくるついでに駅の郵便局から送金手続きを済ませ、送金完了した旨のメールを出品者の方へ送る。
昼過ぎには「入金確認して発送しました」との返事が届く。
丁寧かつ素早い対応に感謝。
出品していた品については、オークション終了から約10分後には落札通知を送ったものの、未だ返事はなし。
この落札者自身、昨日から今日にかけて終了する出品をいくつも抱えているようなので、メールを全くチェックしていないとは考えにくい。自分からの出品には「購入意思のない方はご遠慮願います」とか書いてるくせに、自分には超甘なヤツか? :-p
とりあえず、夕方過ぎに昨日と同じ内容のメールを再送しておこう。