winapi - 我可以在对话框程序中使用 HANDLE_MSG 消息破解程序吗?

标签 winapi dialog

首先,我认为HANDLE_MSG不应该在对话框程序中使用,因为在对话框程序中,如果用户已经处理了消息,对话框程序应该返回TRUE( MSDN document ),但 HANDLE_MSG 返回消息的返回值,并且在大多数情况下,它是 0(如 WM_PAINTWM_COMMAND ),即 FALSE。 p>

但我看到在很多情况下,人们只是使用它,例如 this ,而且效果很好。我很困惑。那么,我可以在对话框过程中使用HANDLE_MSG吗?

最佳答案

嗯,为了清晰起见,这个例子并没有得到很多分数。然而,返回 TRUE 的情况并不常见。或者,在您实际实现的消息上返回 FALSE 会产生任何负面影响。因为您通常会监听默认对话过程将忽略的消息,或者其默认实现是您想要的消息。

您需要避免翻转忽略位,并考虑每个消息的适当返回值应该是什么。而无论是否需要调用SetWindowLong来设置DWL_MSGRESULT,使用HANDLE_MSG返回值更为合适。依赖宏并不是正确的做法,宏不够智能。它确实需要程序员。所以使用HANDLE_MSG就可以了。但您可能需要添加return或SetWindowLong调用,具体取决于消息。

关于winapi - 我可以在对话框程序中使用 HANDLE_MSG 消息破解程序吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16899209/

相关文章:

c++ - 什么是 _WIN32_WINNT,它是如何工作的?

android - 获取应用程序上下文以显示图形组件

c++ - 如何在WIN32中找到字符串的宽度(以像素为单位)

c++ - WM_COMMAND 未传递到主窗口

windows - 检测网络共享的 SMB 与 SMB2

android - 微调器 onClick 调用的 DatePickerDialog

android - 如何取消警报对话框?

android - 在android中显示来自后台服务的弹出窗口

javascript - 如何为 Dojo 对话运行 onLoad 事件?

c++ - 如何使用 OpenGL 在 Windows 上的同一个应用程序中绘制两个单独的 3D 窗口?