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

Winapi 我可以在对话程序中使用HANDLE_MSG消息破解程序吗?,winapi,dialog,Winapi,Dialog,首先,我认为在对话过程中不应该使用HANDLE\u MSG,因为在对话过程中,如果用户已经处理了消息,对话过程应该返回TRUE(),但是HANDLE\u MSG返回消息的返回值,在大多数情况下,它是0(像and),这是FALSE 但我看到在很多情况下,人们只是使用它,就像,它工作得很好。我很困惑。那么,我可以在对话过程中使用HANDLE\u MSG吗?好吧,为了清晰起见,这个例子没有得到很多分数。然而,返回TRUE并不是很常见。或者在您实际实现的消息上返回FALSE有任何负面的副作用。因为您通常

首先,我认为在对话过程中不应该使用
HANDLE\u MSG
,因为在对话过程中,如果用户已经处理了消息,对话过程应该返回
TRUE
(),但是
HANDLE\u MSG
返回消息的返回值,在大多数情况下,它是0(像and),这是
FALSE


但我看到在很多情况下,人们只是使用它,就像,它工作得很好。我很困惑。那么,我可以在对话过程中使用
HANDLE\u MSG
吗?

好吧,为了清晰起见,这个例子没有得到很多分数。然而,返回TRUE并不是很常见。或者在您实际实现的消息上返回FALSE有任何负面的副作用。因为您通常侦听默认对话框过程将忽略的消息,或者其默认实现是您想要的


您需要避免翻转忽略位,并考虑每个消息应该有什么适当的返回值。以及是否需要调用SetWindowLong来设置DWL\u MSGRESULT,这是HANDLE\u MSG返回值更合适的用法。依赖宏不是正确的做法,宏不够聪明。它确实需要一个程序员。所以使用HANDLE_MSG是可以的。但是您可能需要添加一个return或SetWindowLong调用,具体取决于消息。

好吧,为了清晰起见,这个示例没有得到很多分数。然而,返回TRUE并不是很常见。或者在您实际实现的消息上返回FALSE有任何负面的副作用。因为您通常侦听默认对话框过程将忽略的消息,或者其默认实现是您想要的

您需要避免翻转忽略位,并考虑每个消息应该有什么适当的返回值。以及是否需要调用SetWindowLong来设置DWL\u MSGRESULT,这是HANDLE\u MSG返回值更合适的用法。依赖宏不是正确的做法,宏不够聪明。它确实需要一个程序员。所以使用HANDLE_MSG是可以的。但您可能需要添加return或SetWindowLong调用,具体取决于消息