MSDN 术语 - Window 预定义控制程序与控制程序

MSDN terminology - Window procedure for the predefined control vs the control procedure

简而言之

混淆了术语 "The window procedure for the predefined edit control window class" 和 "the edit control procedure"。

详细

我觉得问这个问题很傻,但是我是否遗漏了下面提到的内容?

来自:MSDN

The window procedure for the predefined edit control window class carries out default processing for all messages that the edit control procedure does not process. When the edit control procedure returns FALSE for any message, the predefined window procedure checks the messages and carries out the following default actions.

*我加粗的格式

让我说明一下我对上面的解释:

预定义编辑控件的window程序windowclass:我相信这是编辑控件逻辑的内部实现Windows(类似于我们创建的任何自定义控件)。

编辑控制程序:嗯,这是我无法准确解释的东西。我的大胆猜测是:

  1. 可能:这是我们的自定义 WndProc,如果我们需要修改编辑控件的默认行为(比如 tab/carriage return处理等)
    • 我自己的争论:在这种情况下,MSDN 至少会在文章的某处明确提到单词 "subclass"。
  2. 不太可能:windows 的一些 abstracted/specialized 内部 Wndproc 是 class 特定的。
    • 我的自辩:如果是这样的话,就会在某个地方提到这个。

进一步增加混乱的是“当任何消息的编辑控制程序 return 为 FALSE 时,预定义的 window 程序检查消息并执行按照上面提到的默认操作”。我相信来自 WndProc 的 return 值始终是 LRESULT 并且是消息特定的,并且这个 TRUE/FALSE 东西通常适用于 DialogProcs。那么我缺少的是什么?此外,即使我相信它是一个 WndProc,return 值并不决定默认处理,我们显式调用 DefWindowProc()/CallWindowProc() 决定默认处理。那么上面的return based processing是什么意思呢?

从评论和研究来看,这似乎与 MSDN 上的文档略有不准确有关。尽管我确信 Microsoft 的人们可以对此添加一些意义,也许与内部实现有关。