gpt4 book ai didi

c++ - 子类控制

转载 作者:行者123 更新时间:2023-11-30 04:20:26 24 4
gpt4 key购买 nike

在 WINAPI 中,哪个是正确/必要的?

SetWindowLongPtr(HelpBox, GWLP_USERDATA, static_cast<LONG_PTR>(SetWindowLongPtr(HelpBox, GWLP_WNDPROC, (LONG_PTR)(Subclass))));

SetWindowLongPtr(HelpBox, GWLP_WNDPROC, (LONG_PTR)(Subclass));

然后在 WM_DESTROY 中我都喜欢:

SetWindowLong(HelpBox, GWLP_WNDPROC, (LONG) Original);

为什么我应该使用第一个而不是第二个?我注意到它有 GWLP_USERDATA 和 setwindowlongptr 两次。为什么?我在 MSDN 上看到了这两个示例,但我不知道何时使用第一个而不是第二个。

有什么想法吗?

最佳答案

使用 SetWindowSubclass 代替;它处理将数据与窗口相关联的负担。反正。第一个将旧窗口过程地址存储在与窗口关联的用户数据存储中,除非窗口类是您自己定义的,否则您不能这样做。即 窗口确实存在这样的存储空间,您可以保证该存储空间不用于任何其他用途。

关于c++ - 子类控制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15305108/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com