草庐IT

GWL_EXSTYLE

全部标签

windows - 在 JNA 中创建一个 native Windows 窗口,并使用 GWL_WNDPROC 创建一些 GetWindowLong

你好,我一直在使用JNA与WindowsAPI进行交互,现在我在创建窗口时卡住了。据我所做的如下:1.已创建现有窗口的子窗口并获得有效的处理程序。2.了解Windows中的每个窗口都有一个不间断的消息分发循环。3.了解将我的窗口包含在消息分发循环中的最佳方法是使用类似于以下代码的内容(不是我的,但我也会这样做):finalLONG_PTRprevWndProc=newLONG_PTR(User32.INSTANCE.GetWindowLong(hwnd,User32.GWL_WNDPROC));//thisistoobtainapointertotheWNDPROCoftheparen

windows - 什么是 GWL_USERDATA 的替代品来存储对象指针?

在我处理的Windows应用程序中,我们有一个直接位于Win32之上的自定义框架(不要问)。当我们创建一个窗口时,我们通常的做法是通过SetWindowLong(hwnd,GWL_USERDATA,this)将this放在窗口的用户数据区,这样我们就可以拥有一个MFC-类似回调或紧密集成的WndProc,具体取决于。问题是这在64位Windows上不起作用,因为LONG只有32位宽。对于这个问题,有什么更好的解决方案同时适用于32位和64位系统? 最佳答案 SetWindowLongPtr创建是为了替换SetWindowLong在这