我正在寻找有关此 Windows 编程习语的确认,我认为许多不同类型的“句柄”不仅作为 LRESULT 对象而且作为 lParam 和 wParam 对象传递,这是否正确?
我猜,只要我们知道 LRESULT 或 lParam/wParam 中的“什么”类型的句柄,我们就可以将其转换回它。
例如
case WM_CREATE:
...
//create a window
//lParam is the CREATESTRUCT for new window created here
....
return lParam;
...
...
CREATESTRUCT cStruct = (CREATESTRUCT)SendMessage(hwnd, msg /*WM_CREATE*/);
cStrcut.cx;//this is the width of the new window?
正确的?
这是“正确的”吗?任何人都可以为我和 StaticOverflow 社区提供关于这种技术/习语的简短论文吗?
问题:我们应该只返回 lParam(或只返回 wParam)值吗?有没有应该知道的陷阱?LRESULT 和 LPARAM 都是 LONG_PTR 类型,它们是 32 位或 64 位整数。我不是一个经验丰富的 C 程序员,但似乎这些整数只是被用作“缓冲区”,程序员后来在使用之前将其转换为“真实”类型......听起来准确吗?