1

我正在学习 Win32 汇编。有一些问题我搜索但不合适的结果。

任何人都可以为我解释控件的窗口句柄和 controlID 有什么区别。

4

1 回答 1

2

他们没有任何共同之处。每个窗口都有一个句柄,由 CreateWindowEx() 返回。这样的窗口可以附加一些额外的属性,例如菜单句柄。CreateWindowEx() 中的 hMenu 参数。如果窗口没有菜单,子窗口就没有菜单,那么您可以使用该参数传递任意其他数据位。它将分配给 GWLP_ID 属性(请参阅 GetWindowLongPtr)。另请注意 GWLP_USERDATA,这是一个完全属于您的额外属性,可在您认为合适的情况下使用。

对话框利用了这一点,您在资源编辑器中创建的对话框模板为您提供了一种为子控件编号的方法。使用 GetDlgItem() 之类的辅助函数来获取具有特定数字的控件的句柄。这对于对话框来说是非常必要的,因为是 Windows 从对话框模板创建子控件,所以您自己不知道它们的窗口句柄。

于 2013-10-09T15:23:27.183 回答