【问题标题】:Can I use HANDLE_MSG message crackers in dialog procedures?我可以在对话过程中使用 HANDLE_MSG 消息破解程序吗?
【发布时间】:2013-06-03 14:32:07
【问题描述】:

首先,我认为HANDLE_MSG不应该在对话过程中使用,因为在对话过程中,如果用户处理了消息,对话过程应该返回TRUEMSDN document),但HANDLE_MSG返回消息的返回值,在大多数情况下,它是 0(如 WM_PAINTWM_COMMAND),即 FALSE

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

【问题讨论】:

    标签: winapi dialog


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-10-12
      • 2013-02-22
      • 1970-01-01
      • 2015-09-23
      • 2016-01-05
      • 1970-01-01
      • 2012-04-06
      • 1970-01-01
      相关资源
      最近更新 更多