2016-11-10 30 views
0

文档说DefWindowProc()发送WM_SETCURSOR给父母。如果您不打电话DefWindowProc()WM_SETCURSOR而只是返回FALSE将WM_SETCURSOR发送到您的窗口的父母?换句话说,如果你只是返回FALSE,那么发给你的代码WM_SETCURSOR会发送WM_SETCURSOR给你的窗口的父窗口?这不是一个对话窗口。如果你处理WM_SETCURSOR并且不调用DefWindowProc(),WM_SETCURSOR会被发送给父代吗?

//Are these two the same? 
    case WM_SETCURSOR: 
     //More code 
     return DefWindowProc(hwnd, msg, wParam, lParam); 

    case WM_SETCURSOR: 
     //More code 
     return FALSE; 
+0

很难猜测。这要取决于它是否是父窗口本身和名为DefWindowProc()的子窗口。这不是真正的理智的代码,无论如何它不会被注释掉,WM_SETCURSOR应该只做一件事。你必须尝试,如果你不想要的话,总是使用第一版。 –

+0

@HansPassant:动态设置游标的一部分涉及评估状态。如果你不需要动态设置你的游标,根本没有理由处理WM_SETCURSOR消息;类的光标将会很好。如果你正在处理'WM_SETCURSOR',很可能你需要做的不仅仅是设置光标。 – IInspectable

+0

https://blogs.msdn.microsoft.com/oldnewthing/20061121-15/?p=28943 – jamesdlin

回答

0

答案是:那要看。如果您直接通过Windows调用并返回FALSE,则不会发生更多事情,但这可能不是这种情况。

如果你被DefWindowProc或其他窗口过程调用,那么返回FALSE就是说你还没有处理消息。进一步的处理是很有可能的,但究竟是什么取决于调用者。

这可能不是一个好主意。返回TRUE或致电DefWindowProc,如手册所述。

相关问题