MFC で作業を行ってからしばらく経ちましたが、単純なコンソールを追加して、アプリケーションが受信したログ メッセージを表示する必要があるプロジェクトを手に入れました。受信したメッセージの書式設定と色付けを行いたいので、RichEditView を使用することにしました。
CRichEditView で ES_AUTOHSCROLL と ES_AUTOVSCROLL を設定しようとして、一日中頭を悩ませていましたが、うまく動作しません...
CRichEditView から CConsoleView というクラスを派生させ、CConsolesView::PreCreateWindows でスタイルを - ES_READONLY | に設定しました。ES_MULTILINE | ES_WANTRETURN | ES_AUTOHSCROLL | ES_AUTOVSCROLL
しかし、これは期待どおりに機能しませんでした。
わかりました...基本に戻っても問題はないので、単純な MFC ウィザードでこれを試してみましたが、うまくいきました。これが自分のアプリでもうまくいくと思っていました。
http://msdn.microsoft.com/en-us/library/windows/desktop/bb775464(v=vs.85).aspxから、オブジェクトの作成後に自動スクロールを変更できないことを知っているので、私のオブジェクトはPreCreateWindow への呼び出しを取得する前に作成されています...
- CConsoleView コンストラクターでスタイルを強制できますか?
- (一般的な質問) CRichEditView::Create() メソッドが呼び出されているのはいつ/どこですか? PreCreateWindow の後に呼び出すべきではありませんか?
- 新しいオブジェクトをアタッチする以外に、これを回避する方法はありますか?
どんな助けでも大歓迎です!
乾杯