0

自从我使用 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 之后调用它吗?
  • 除了附加一个新对象之外,还有什么办法可以解决这个问题?

任何帮助,将不胜感激!

干杯

4

1 回答 1

0

如果您在对话框模板中使用控件,只需将创建标志添加到在对话框中声明控件的资源文件中。如果您正在动态创建控件,则您将执行 Create... 除非您正在执行 MDI(根据您的描述,这似乎不适合)。

于 2013-05-31T12:32:31.737 回答