【发布时间】:2011-10-11 10:30:21
【问题描述】:
我正在研究一个开源项目的一些代码,这是我第一次处理 Win32 应用程序(主要是做控制台的东西)。我看到代码中的几个函数是 Windows 过程,因为它们返回 LRESULT CALLBACK。
程序员是否需要做一些事情来确保 DispatchMessage 调用正确的 WndProc 或者 DispatchMessage 的编码方式可以自行确定正确的 WndProc?
编辑:
我猜 DispatchMessage(const MSG*) 在应用程序中选择不同 WndProc 的方式是基于传递给它的 MSG 对象的窗口句柄成员 (HWND)。[希望前面的句子不会太混乱.] 例如,如果消息是针对应用程序的编辑窗口(而不是针对其主窗口),那么 DispatchMessage 将为编辑窗口作为其对象的特定类选择 WndProc 成员函数。如果消息是针对主窗口的,那么它将为主窗口作为对象的类选择 WndProc 成员函数(对我来说,这个类将是 Notepad_plus_Window 类)。不过,这只是一个想法。我没有找到太多的支持,所以如果有人能证实这一点,我会很高兴。
【问题讨论】:
标签: window wndproc procedures